1、GLSurfaceView的特性:
- 管理一個surface,這個surface就是一塊特殊的記憶體,能直接排版到android的視圖view上;
- 管理一個EGL display,它能讓opengl把内容渲染到上述的surface上;
- 讓渲染器在獨立的線程裡運作,和UI線程分離。
2、關于Android中ContentValues類說法正确的是:
- 他和Hashtable比較類似,也是負責存儲一些鍵值對,但是他存儲的鍵值對當中的鍵都是String類型,而值都是基本類型。
3、android的動畫分類的有:
- Tween動畫,這種實作方式可以使視圖元件移動,放大或縮小以及産生透明度的變化。
- Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖檔來實作類似電影的效果。
4、關于Android DVM的程序和Linux的程序,應用程式的程序說法正确的是:
- DVM指dalivk的虛拟機。每一個Android應用程式都在它自己的程序中運作,都擁有一個獨立的Dalvik虛拟機執行個體。而每一個DVM都是在Linux 中的一個程序,是以說可以認為是同一個概念。
5、Android項目工程下面的assets目錄的作用是什麼:
- 主要放置多媒體等資料檔案
6、于res/raw目錄說法正确的是:
- 這裡的檔案是原封不動的存儲到裝置上不會轉換為二進制的格式
7、java.io包中的_和_類主要用于對對象(Object)的讀寫?
- ObjectInputStream
- ObjectOutputStream
8、android中service的實作方法是:_和_。
- startService
- bindService
9、android的資料存儲的方式有___。
- SharedPreference
- 檔案
- SQLite
- ContentProvider
- 網絡
10、以下程式的運作結果是_:
public class Example{
String str = new String("good");
char[]ch = {'a','b','c'};
public static void main(String args[]){
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str,char ch[]){
str = "test ok";
ch[] = 'g';
}
}
Answer:good and gbc
11、在android中,請簡述jni的調用過程。
)安裝和下載下傳Cygwin,下載下傳 Android NDK
)在ndk項目中JNI接口的設計
)使用C/C++實作本地方法
)JNI生成動态連結庫.so檔案
)将動态連結庫複制到java工程,在java工程中調用,運作java工程即可
12、簡述Android應用程式結構是哪些?
從底層往上分别是:
Linux Kernel(linux核心層)、
Libraries + Android Runtime(系統運作庫層,包括程式庫和Android運作庫)、
Application Framework(應用程式架構層)、
Applications(應用程式層)
13、請繼承SQLiteOpenHelper實作:
1).建立一個版本為1的“diaryOpenHelper.db”的資料庫;
2).同時建立一個 “diary”; 表(包含一個_id主鍵并自增長,topic字元型100長度,content字元型1000長度)
3).在資料庫版本變化時請删除diary表,并重新建立出diary表。
實作代碼:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DiarySQLiteOpenHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "diaryOpenHelper.db";
public static final int DATABASE_VERSION = ;
public DiarySQLiteOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
public DiarySQLiteOpenHelper(Context context) {
this(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table if not exists diary" + "("
+ "_id integer primary key autoincrement,"
+ "topic varchar(100)," + "content varchar(1000)" + ")";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "drop table if exists diary";
db.execSQL(sql);
this.onCreate(db);
}
}