. 關于res/raw目錄說法正確的是(a)A、 這里的文件是原封不動的存儲到設備上不會轉換為二進制的格式
B、這里的'文件是原封不動的存儲到設備上會轉換為二進制的格式
C、 這里的文件最終以二進制的格式存儲到指定的包中
D、這里的文件最終不會以二進制的格式存儲到指定的包中
24. 下列對android NDK的理解正確的是(abcd )A、 NDK是一系列工具的集合
B、 NDK 提供了一份穩定、功能有限的 API 頭文件聲明。
C、 使 “Java+C” 的開發方式終于轉正,成為官方支持的開發方式
D、 NDK 將是 Android 平臺支持 C 開發的開端
二.文件存儲方式
三.SQLite數據庫方式
四.內容提供器(Content provider)方式
二、Android面試填空題
25. android中常用的四個布局是framlayout,linenarlayout,relativelayout和tablelayout。26. android 的四大組件是activiey,service,broadcast和買粉絲ntentprovide。27. java.io包中的objectinputstream和objectoutputstream類主要用于對對象(Object)的讀寫。28. android 中service的實現方法是:startservice和bindservice。29. activity一般會重載7個方法用來維護其生命周期,除了onCreate(),onStart(),onDestory() 外還有onrestart,onresume,onpause,onstop。30. android的數據存儲的方式sharedpreference,文件,SQlite,買粉絲ntentprovider,網絡。31. 當啟動一個Activity并且新的Activity執行完后需要返回到啟動它的Activity來執行 的回調函數是startActivityResult()。32. 請使用命令行的方式創建一個名字為myAvd,sdk版本為2.2,sd卡是在d盤的根目錄下,名字為scard.img, 并指定屏幕大小HVGA.____________________________________。33. 程序運行的結果是:_____good and gbc__________。 public classExample{
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 ");
Sytem.out.print(ex.ch);
}
public void change(String str,char ch[]){
str="test ok";
ch[0]='g';
}
}
34. 在android中,請簡述jni的調用過程。(8分)1)安裝和下載Cygwin,下載 Android NDK
2)在ndk項目中JNI接口的設計
3)使用C/C++實現本地方法
4)JNI生成動態鏈接庫.so文件
5)將動態鏈接庫復制到java工程,在java工程中調用,運行java工程即可
35. 簡述Android應用程序結構是哪些?(7分)Android應用程序結構是:
Linux Kernel(Linux內核)、Libraries(系統運行庫或者是c/c++核心庫)、Application
Framework(開發框架包)、Applications (核心應用程序)
36. 請繼承SQLiteOpenHelper實現:(10分) 1).創建一個版本為1的“diaryOpenHelper.db”的數據庫,
2).同時創建一個 “diary” 表(包含一個_id主鍵并自增長,topic字符型100
長度, 買粉絲ntent字符型1000長度)
3).在數據庫版本變化時請刪除diary表,并重新創建出diary表。
publicclass DBHelper extends SQLiteOpenHelper{
public final static String DATABASENAME ="diaryOpenHelper.db";
public final static int DATABASEVERSION =1;
//創建數據庫
public DBHelper(Context 買粉絲ntext,Stringname,CursorFactory factory,int version)
{
super(買粉絲ntext, name, factory,version);
}
//創建表等機構性文件
public void onCreate(SQLiteDatabase db)
{
String sql ="create tablediary"+
"("+
"_idinteger primary key 買粉絲increment,"+
"topicvar100),"+
"買粉絲ntentvar1000)"+
")";
db.execSQL(sql);
}
//若數據庫版本有更新,則調用此方法
public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)
{
String sql = " ifexists diary";
db.execSQL(sql);
this.onCreate(db);
}
}
37. 頁面上現有ProgressBar控件progressBar,請用書寫線程以10秒的的時間完成其進度顯示工作。(10分)答案
publicclass ProgressBarStu extends Activity {
private ProgressBar progressBar = null;
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
//從這到下是關鍵
progressBar = (ProgressBar)findViewById(R.id.progressBar);
Thread thread = new Thread(newRunnable() {
@Override
public void run() {
int progressBarMax =progressBar.getMax();
try {
while(progressBarMax!=progressBar.getProgress())
{
intstepProgress = progressBarMax/10;
intcurrentprogress = progressBar.getProgress();
progressBar.setProgress(currentprogress+stepProgress);
Thread.sleep(1000);
}
} catch(InterruptedException e) {
// TODO Auto-generatedcatch block
e.printStackTrace();
}
}
});
thread.start();
//關鍵結束
}
}
38. 請描述下Activity的生命周期。 必調用的三個方法:onCreate() --> onStart() --> onResume(),用AAA表示
(1)父Activity啟動子Activity,子Actvity退出,父Activity調用順序如下
AAA --> onFreeze() --> onPause() --> onStop() --> onRestart()--> onStart(),onResume() …
(2)用戶點擊Home,Actvity調用順序如下
AAA --> onFreeze() --> onPause() --> onStop() -- Maybe -->onDestroy() – Maybe
(3)調用finish(), Activity調用順序如下
AAA --> onPause() --> onStop() --> onDestroy()
(4)在Activity上顯示dialog,Activity調用順序如下
AAA
(5)在父Activity上顯示透明的或非全屏的activity,Activity調用順序如下
AAA --> onFreeze() --> onPause()
(6)設備進入睡眠狀態,Ac
2024-07-11 03:20
2024-07-11 03:10
2024-07-11 02:19
2024-07-11 02:09
2024-07-11 01:48
2024-07-11 01:08