2023年面試題集合含答案_第1頁
2023年面試題集合含答案_第2頁
2023年面試題集合含答案_第3頁
2023年面試題集合含答案_第4頁
2023年面試題集合含答案_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

云時代Android面試題集[鍵入文檔副標題]?目錄TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc"第一章Android最全面試題71道題 PAGEREF_Toc\h4HYPERLINK\l"_Toc"一、選擇題?PAGEREF_Toc\h4HYPERLINK\l"_Toc"二.填空和問答?PAGEREF_Toc\h9HYPERLINK\l"_Toc"25.android中常用的五個布局是FrameLayout(單幀布局)、Relat(yī)iveLyout(相對布局)、LinerLayout(線性布局)、TableLayout(表格布局)、AbsoluteLayout(絕對布局)?PAGEREF_Toc\h9HYPERLINK\l"_Toc"26.android的四大組件是__ActivityServiceBrodcastReceiverContentProvier。?PAGEREF_Toc\h9HYPERLINK27.java.io包中的__ObjectInputStream_和_ObjectOutputStream_類重要用于對對象(Object)的讀寫。 PAGEREF_Toc\h9HYPERLINK28.android中service的啟動方法有:__startService____bindService_ PAGEREF_Toc\h9HYPERLINK\l"_Toc"29.a(chǎn)ctivity一般會重載7個方法用來維護其生命周期,分別是:onCreateonStartonResumeonPauseonStoponDestroyonRestart?PAGEREF_Toc\h9HYPERLINK30.a(chǎn)ndroid的數(shù)據(jù)存儲的方式有:SharedPreferences數(shù)據(jù)存儲、文獻存儲、SQLite數(shù)據(jù)庫存儲數(shù)據(jù)、Contentprovider存儲數(shù)據(jù)、網(wǎng)絡存儲數(shù)據(jù)?PAGEREF_Toc\h10HYPERLINK31.當啟動一個Activity并且新的Activity執(zhí)行完后需要返回到啟動它的Activity數(shù)據(jù),啟動新Activity的方法是_startActivityForResult(intent,RequestCode)_,用來解決返回數(shù)據(jù)的Activity回調(diào)函數(shù)是voidonActivityResult(intrequestCode,intresultCode,intentdata)_。?PAGEREF_Toc\h10HYPERLINK\l"_Toc"33.下面程序運營的結(jié)果是:______________。?PAGEREF_Toc\h10HYPERLINK\l"_Toc"34.在android中,請簡述jni的調(diào)用過程。?11HYPERLINK\l"_Toc"35.簡述Android的體系結(jié)構(gòu)涉及哪些? PAGEREF_Toc\h11HYPERLINK\l"_Toc"36.請繼承SQLiteOpenHelper實現(xiàn)下述功能 PAGEREF_Toc\h11HYPERLINK\l"_Toc"37.頁面上現(xiàn)有ProgressBar控件progressBar,請用書寫線程以10秒的的時間完畢其進度顯示工作。?12HYPERLINK\l"_Toc"38.請描述Activity的生命周期。?PAGEREF_Toc\h13HYPERLINK\l"_Toc"39.假如后臺的Activity由于某因素被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當前狀態(tài)??PAGEREF_Toc\h13HYPERLINK40.如何將一個Activity設立成對話框窗口的樣式。?PAGEREF_Toc\h14HYPERLINK\l"_Toc"41.如何退出Activity?如何安全退出已調(diào)用多個Activity的Application? PAGEREF_Toc\h14HYPERLINK\l"_Toc"43.請介紹下Android的數(shù)據(jù)存儲方式。?PAGEREF_Toc\h15HYPERLINK46.注冊廣播接受器有幾種方式,這些方式有何優(yōu)缺陷?請談談Android引入廣播機制的用意。?PAGEREF_Toc\h16HYPERLINK\l"_Toc"47.請解釋下在單線程模型中Message、Handler、MessageQueue、Looper之間的關系。?PAGEREF_Toc\h18HYPERLINK\l"_Toc"48.AIDL的全稱是什么?如何工作?能解決哪些類型的數(shù)據(jù)??PAGEREF_Toc\h19HYPERLINK\l"_Toc"49.請解釋下Android程序運營時權限與文獻系統(tǒng)權限的區(qū)別。 PAGEREF_Toc\h20HYPERLINK\l"_Toc"50.系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。 PAGEREF_Toc\h20HYPERLINK\l"_Toc"51.你如何評價Android系統(tǒng)優(yōu)缺陷。 PAGEREF_Toc\h20HYPERLINK\l"_Toc"52.什么是ANR如何避免它??PAGEREF_Toc\h21HYPERLINK\l"_Toc"53.什么情況會導致ForceClose?如何避免?能否捕獲導致其的異常? PAGEREF_Toc\h22HYPERLINK\l"_Toc"54.Android自身的api并未聲明會拋出異常,則其在運營時有無也許拋出runtime異常,你碰到過嗎?若有的話會導致什么問題?如何解決? PAGEREF_Toc\h22HYPERLINK55.簡要解釋一下activity、intent、intentfilter、service、Broadcase、BroadcaseReceiver PAGEREF_Toc\h22HYPERLINK56.IntentService有何優(yōu)點? PAGEREF_Toc\h23HYPERLINK\l"_Toc"57.請描述橫豎屏切換時候activity的生命周期? PAGEREF_Toc\h23HYPERLINK\l"_Toc"58.如何將打開resaw目錄中的數(shù)據(jù)庫文獻? PAGEREF_Toc\h23HYPERLINK如何將SQLite數(shù)據(jù)庫(dictionary.db文獻)與apk文獻一起發(fā)布? PAGEREF_Toc\h23HYPERLINK\l"_Toc"59.Android引入廣播機制的用意??PAGEREF_Toc\h23HYPERLINK60.Androiddvm的進程和Linux的進程,應用程序的進程是否為同一個概念?PAGEREF_Toc\h24HYPERLINK\l"_Toc"61.sim卡的EF文獻有何作用?PAGEREF_Toc\h24HYPERLINK62.嵌入式操作系統(tǒng)內(nèi)存管理有哪幾種,各有何特性?PAGEREF_Toc\h24HYPERLINK64.一條最長的短信息約占多少byte? PAGEREF_Toc\h24HYPERLINK\l"_Toc"65.android中的動畫有哪幾類,它們的特點和區(qū)別是什么??PAGEREF_Toc\h24HYPERLINK\l"_Toc"66.請說明handler機制的原理?PAGEREF_Toc\h24HYPERLINK\l"_Toc"67.說說mvc模式的原理,它在android中的運用? PAGEREF_Toc\h25HYPERLINK68.DDMS和TraceView的區(qū)別??PAGEREF_Toc\h25HYPERLINK69.java中如何引用本地語言 PAGEREF_Toc\h25HYPERLINK\l"_Toc"70.談談Android的IPC(進程間通信)機制?PAGEREF_Toc\h25HYPERLINK\l"_Toc"71.NDK是什么?PAGEREF_Toc\h26HYPERLINK\l"_Toc"第二章Android面試題總結(jié)加強版(一) PAGEREF_Toc\h26HYPERLINK\l"_Toc"1.android中線程與線程,進程與進程之間如何通信 PAGEREF_Toc\h26HYPERLINK\l"_Toc"2.請描述一下你所掌握的Android常用控件的信息?PAGEREF_Toc\h26HYPERLINK\l"_Toc"3ListtView的數(shù)據(jù)加載優(yōu)化方案 PAGEREF_Toc\h27HYPERLINK\l"_Toc"4請描述廣播接受者生命周期 PAGEREF_Toc\h27HYPERLINK\l"_Toc"5.設計模式和IoC(InversionofControl控制反轉(zhuǎn))?PAGEREF_Toc\h28HYPERLINK6.請說明Android中的長度單位?PAGEREF_Toc\h28HYPERLINK\l"_Toc"7.請解釋4種activity的啟動模式?PAGEREF_Toc\h29HYPERLINK\l"_Toc"8.假如后臺的Activity由于某因素被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當前狀態(tài)??PAGEREF_Toc\h29HYPERLINK9View,surfaceView,GLSurfaceView有什么區(qū)別。 PAGEREF_Toc\h29HYPERLINK\l"_Toc"10AndroidManifest.xml文獻中重要涉及哪些信息??PAGEREF_Toc\h29HYPERLINK11根據(jù)自己的理解描述下Android數(shù)字署名。?PAGEREF_Toc\h30HYPERLINK\l"_Toc"12AIDL的全稱是什么?如何工作?能解決哪些類型的數(shù)據(jù)? PAGEREF_Toc\h30HYPERLINK13android:gravity與android:layout_gravity的區(qū)別?PAGEREF_Toc\h31HYPERLINK\l"_Toc"14android中有哪幾種解析xml的類,官方推薦哪種?以及它們的原理和區(qū)別. PAGEREF_Toc\h31HYPERLINK15Android系統(tǒng)中GC什么情況下會出現(xiàn)內(nèi)存泄露呢? PAGEREF_Toc\h32HYPERLINK17AsyncTask簡介 PAGEREF_Toc\h32HYPERLINK\l"_Toc"18,Socket通信編程的基本實現(xiàn)環(huán)節(jié) PAGEREF_Toc\h33HYPERLINK19假如有個100M大的文獻,需要上傳至服務器中,而服務器form表單最大只能上傳2M,可以用什么方法。 PAGEREF_Toc\h33HYPERLINK22assest文獻夾里放文獻,對于文獻的大小有沒有限制?22 PAGEREF_Toc\h34HYPERLINK\l"_Toc"23

啟動一個程序,可以主界面點擊圖標進入,也可以從一個程序中跳轉(zhuǎn)過去,兩者有什么區(qū)別? PAGEREF_Toc\h34HYPERLINK\l"_Toc"24、同一個程序,但不同的Activity是否可以放在不同的Task任務棧中??PAGEREF_Toc\h34

第一章Android最全面試題一、選擇題1.下列哪些語句關于內(nèi)存回收的說明是對的的?(b)A、程序員必須創(chuàng)建一個線程來釋放內(nèi)存B、內(nèi)存回收程序負責釋放無用內(nèi)存C、內(nèi)存回收程序允許程序員直接釋放內(nèi)存D、內(nèi)存回收程序可以在指定的時間釋放內(nèi)存對象2.下面異常是屬于RuntimeException的是(abcd)(多選)A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPointerExceptionD、BufferUnderflowException3.Math.round(11.5)等于多少()?Mat(yī)h.round(-11.5)等于多少(c).A、11,-11B、11,-12C、12,-11D、12,-124.下列程序段的輸出結(jié)果是:(b)voidcomplicat(yī)edexpression_r(){intx=20,y=30;booleanb;b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;System.out.println(b);}A、trueB、falseC、1D、05.對一些資源以及狀態(tài)的操作保存,最佳是保存在Activity生命周期的哪個函數(shù)中進行(d)A、onPause()B、onCreate()C、onResume()D、onStart()6.Intent傳遞數(shù)據(jù)時,下列的數(shù)據(jù)類型哪些可以被傳遞(abcd)(多選)A、SerializableB、charsequenceC、ParcelableD、Bundle(可序列化)(字符序列)(綁定)7.android中下列屬于Intent的作用的是(c)A、實現(xiàn)應用程序間的數(shù)據(jù)共享B、是一段長的生命周期,沒有用戶界面的程序,可以保持應用在后臺運營,而不會由于切換頁面而消失C、可以實現(xiàn)界面間的切換,可以包含動作和動作數(shù)據(jù),連接四大組件的紐帶D、解決一個應用程序整體性的工作8.下列屬于SAX解析xml文獻的優(yōu)點的是(b)A、將整個文檔樹在內(nèi)存中,便于操作,支持刪除,修改,重新排列等多種功能(dom解析優(yōu)點)B、不用事先調(diào)入整個文檔,占用資源少(sax解析優(yōu)點)C、整個文檔調(diào)入內(nèi)存,浪費時間和空間(dom解析缺陷)D、不是長期駐留在內(nèi)存,數(shù)據(jù)不是持久的,事件過后,若沒有保存數(shù)據(jù),數(shù)據(jù)就會說明:不需要像dom解析那樣在內(nèi)存中建立一個dom對象,占用內(nèi)存,sax解析是逐行解析的,每次讀入內(nèi)存的只是一行xml,所以速度快,效率高點。但是sax一般是解決固定格式的xml。9.下面的對自定義style的方式對的的是(a)A、<resources><stylename="myStyle"><itemname="android:layout_width">fill_parent</item></style></resources>B、<stylename="myStyle"><itemname="android:layout_width">fill_parent</item>(沒有<resources>)</style>C、<resources><itemname="android:layout_width">fill_parent</item>(沒有</style>)</resources>D、<resources><stylename="android:layout_width">fill_parent</style>(</style>應為</item>)</resources>10.在android中使用Menu時也許需要重寫的方法有(ac)。(多選)A、onCreat(yī)eOptionsMenu()B、onCreat(yī)eMenu()C、onOptionsItemSelected()D、onItemSelected()說明://當客戶點擊MENU按鈕的時候,調(diào)用該方法publicbooleanonCreat(yī)eOptionsMenu(Menumenu)//當客戶點擊菜單當中的某一個選項時,會調(diào)用該方法publicbooleanonOptionsItemSelected(MenuItemitem)11.在SQLServerManagementStudio中運營下列T-SQL語句,其輸出值(c)。SELECT@@IDENTITYA、也許為0.1B、也許為3C、不也許為-100D、肯定為0@@identity是表達的是最近一次向具有identity屬性(即自增列)的表插入數(shù)據(jù)時相應的自增列的值,是系統(tǒng)定義的全局變量。一般系統(tǒng)定義的全局變量都是以@@開頭,用戶自定義變量以@開頭。比如有個表A,它的自增列是id,當向A表插入一行數(shù)據(jù)后,假如插入數(shù)據(jù)后自增列的值自動增長至101,則通過select@@identity得到的值就是101。使用@@identity的前提是在進行insert操作后,執(zhí)行select@@identity的時候連接沒有關閉,否則得到的將是NULL值。12.在SQLServer2023中運營如下T-SQL語句,假定SALES表中有多行數(shù)據(jù),執(zhí)行查詢之后的結(jié)果是(d)。BEGINTRANSACTIONAUpdateSALESSetqty=30WHEREqty<30BEGINTRANSACTIONBUpdateSALESSetqty=40WHEREqty<40Updat(yī)eSALESSetqty=50WHEREqty<50UpdateSALESSetqty=60WHEREqty<60COMMITTRANSACTIONBCOMMITTRANSACTIONAA、SALES表中qty列最小值大于等于30B、SALES表中qty列最小值大于等于40C、SALES表中qty列的數(shù)據(jù)所有為50D、SALES表中qty列最小值大于等于60Updat(yī)eSALESSetqty=60WHEREqty<60(關鍵在最后一句,執(zhí)行完數(shù)據(jù)就都是大于等于60了)13.在android中使用SQLiteOpenHelper這個輔助類時,可以生成一個數(shù)據(jù)庫,并可以對數(shù)據(jù)庫版本進行管理的方法可以是(ab)A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()14.android關于service生命周期的onCreate()和onStart()說法對的的是(ad)(多選題)A、當?shù)谝淮螁拥臅r候先后調(diào)用onCreat(yī)e()和onStart()方法B、當?shù)谝淮螁拥臅r候只會調(diào)用onCreate()方法C、假如service已經(jīng)啟動,將先后調(diào)用onCreate()和onStart()方法D、假如service已經(jīng)啟動,只會執(zhí)行onStart()方法,不在執(zhí)行onCreate()方法15.下面是屬于GLSurFaceView特性的是(abc)(多選)A、管理一個surface,這個surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖view上。B、管理一個EGLdisplay,它能讓opengl把內(nèi)容渲染到上述的surface上。C、讓渲染器在獨立的線程里運作,和UI線程分離。D、可以直接從內(nèi)存或者DMA等硬件接口取得圖像數(shù)據(jù)說明:GLSurfaceView是一個視圖,繼承至SurfaceView,它內(nèi)嵌的surface專門負責OpenGL渲染。GLSurfaceView提供了下列特性:1>管理一個surface,這個surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖view上。2>管理一個EGLdisplay,它能讓opengl把內(nèi)容渲染到上述的surface上。3>用戶自定義渲染器(render)。4>讓渲染器在獨立的線程里運作,和UI線程分離。5>支持按需渲染(on-demand)和連續(xù)渲染(continuous)。6>一些可選工具,如調(diào)試。16.下面在AndroidManifest.xml文獻中注冊BroadcastReceiver方式對的的(a)A、<receiverandroid:name="NewBroad"><intent-filter><actionandroid:name="android.provider.action.NewBroad"/><action></intent-filter></receiver>B、<receiverandroid:name="NewBroad"><intent-filter>android:name="android.provider.action.NewBroad"/></intent-filter></receiver>C、<receiverandroid:name="NewBroad"><actionandroid:name="android.provider.action.NewBroad"/><action></receiver>D、<intent-filter><receiverandroid:name="NewBroad"><action>android:name="android.provider.action.NewBroad"/><action></receiver></intent-filter>17.關于ContenValues類說法對的的是(a)A、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的名是String類型,而值都是基本類型。B、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的名是任意類型,而值都是基本類型。C、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的名,可認為空,而值都是String類型。D、他和Hashtable比較類似,也是負責存儲一些名值對,但是他存儲的名值對當中的名是String類型,而值也是String類型。18.我們都知道Hanlder是線程與Activity通信的橋梁,假如線程解決不妥,你的機器就會變得越慢,那么線程銷毀時調(diào)用的方法是(a)A、destroy()B、clear()C、onFinish()D、onStop()19.下面退出Activity錯誤的方法是(c)A、finish()B、拋異常強制退出C、System.exit()System.exit(0)0是正常退出,其他數(shù)字是表達不正常退出D、onStop()20.下面屬于android的動畫分類的有(ab)(多項)A、TweenB、FrameC、DrawD、Animat(yī)ion21.下面關于Androiddvm的進程和Linux的進程,應用程序的進程說法對的的是(d)A、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運營,不一定擁有一個獨立的Dalvik虛擬機實例.而每一個DVM都是在Linux中的一個進程,所以說可以認為是同一個概念。B、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運營,不一定擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux中的一個進程,所以說不是一個概念。C、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運營,都擁有一個獨立的Dalvik虛擬機實例.而每一個DVM不一定都是在Linux中的一個進程,所以說不是一個概念。D、DVM指dalivk的虛擬機.每一個Android應用程序都在它自己的進程中運營,都擁有一個獨立的Dalvik虛擬機實例.而每一個DVM都是在Linux中的一個進程,所以說可以認為是同一個概念。22.Android項目工程下面的assets目錄的作用是什么(b)A、放置應用到的圖片資源。B、重要放置多媒體等數(shù)據(jù)文獻C、放置字符串,顏色,數(shù)組等常量數(shù)據(jù)D、放置一些與UI相應的布局文獻,都是xml文獻23.關于res/raw目錄說法對的的是(a)A、這里的文獻是原封不動的存儲到設備上不會轉(zhuǎn)換為二進制的格式B、這里的文獻是原封不動的存儲到設備上,會轉(zhuǎn)換為二進制的格式C、這里的文獻最終以二進制的格式存儲到指定的包中D、這里的文獻最終不會以二進制的格式存儲到指定的包中24.下列對androidNDK的理解對的的是(abcd)A、NDK是一系列工具的集合B、NDK提供了一份穩(wěn)定、功能有限的API頭文獻聲明。C、使“Java+C”的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式D、NDK將是Android平臺支持C開發(fā)的開端二.填空和問答25.android中常用的五個布局是_______________________。LinearLayout(線性布局)、FrameLayout(單幀布局)、RelativeLayout(相對布局)、TableLayout(表格布局)和AbsoluteLayout(絕對布局)26.android的四大組件是________________________________。Activity,Service,BroadcastReceiver和ContentProvider。27.java.io包中的_________和__________類重要用于對對象(Object)的讀寫。ObjectInputStream、ObjectOutputStream28.android中service的啟動方法有:______________________startservice和bindservice。29.a(chǎn)ctivity一般會重載7個方法用來維護其生命周期,分別是:onCreate(),onStart(),onResult()、onPause()、onStop()、onDestory()、onRestart()30.a(chǎn)ndroid的數(shù)據(jù)存儲的方式有:Android提供了5種方式存儲數(shù)據(jù):(1)使用SharedPreferences存儲數(shù)據(jù);它是Android提供的用來存儲一些簡樸配置信息的一種機制,采用了XML格式將數(shù)據(jù)存儲到設備中。只能在同一個包內(nèi)使用,不能在不同的包之間使用。(2)文獻存儲數(shù)據(jù);文獻存儲方式是一種較常用的方法,在Android中讀取/寫入文獻的方法,與Java中實現(xiàn)I/O的程序是完全同樣的,提供了openFileInput()和openFileOutput()方法來讀取設備上的文獻。(3)SQLite數(shù)據(jù)庫存儲數(shù)據(jù);SQLite是Android所帶的一個標準的數(shù)據(jù)庫,它支持SQL語句,它是一個輕量級的嵌入式數(shù)據(jù)庫。(4)使用ContentProvider存儲數(shù)據(jù);重要用于應用程序之間進行數(shù)據(jù)互換,從而可以讓其他的應用保存或讀取此ContentProvider的各種數(shù)據(jù)類型。(5)網(wǎng)絡存儲數(shù)據(jù);通過網(wǎng)絡上提供應我們的存儲空間來上傳(存儲)和下載(獲取)我們存儲在網(wǎng)絡空間中的數(shù)據(jù)信息。31當啟動一個Activity并且新的Activity執(zhí)行完后需要返回到啟動它的Activity數(shù)據(jù),啟動新Activity的方法是___________,用來解決返回數(shù)據(jù)的Activity回調(diào)函數(shù)是____________。startActivityForResult(Intent,requestCode)//啟動一個activity包含參數(shù)請求碼和具體的intent數(shù)據(jù),其中請求碼可以用來辨認子活動。voidonActivityResult(intrequestCode,intresultCode,Intentdat(yī)a)回調(diào)函數(shù)用來解決返回的數(shù)據(jù)。32使用Intent在Activity之間傳遞數(shù)據(jù)時,能傳遞什么類型的數(shù)據(jù)?如何傳遞?對象數(shù)據(jù)的傳遞有什么限制? 1.一般的基本數(shù)據(jù)類型Intent.putextra()intent.getextra();?2.數(shù)據(jù)的uri,intent.setDat(yī)a()intent.getData();33.下面程序運營的結(jié)果是:______________。publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstat(yī)icvoidmain(Stringargs[]){Exampleex=newExample();ex.change(ex.str,ex.ch);System.out.print(ex.str+"and");Sytem.out.print(ex.ch);}publicvoidchange(Stringstr,charch[]){str="testok";ch[0]='g';}}34.在android中,請簡述jni的調(diào)用過程。1)安裝和下載Cygwin,下載AndroidNDK2)在ndk項目中JNI接口的設計3)使用C/C++實現(xiàn)本地方法4)JNI生成動態(tài)鏈接庫.so文獻5)將動態(tài)鏈接庫復制到java工程,在java工程中調(diào)用,運營java工程即可35.簡述Android的體系結(jié)構(gòu)涉及哪些?Android應用程序結(jié)構(gòu)是:LinuxKernel(Linux內(nèi)核)、Libraries(系統(tǒng)運營庫或者是c/c++核心庫)、ApplicationFramework(開發(fā)框架包)、Applications(核心應用程序)36.請繼承SQLiteOpenHelper?qū)崿F(xiàn)下述功能1).創(chuàng)建一個版本為1的“diaryOpenHelper.db”的數(shù)據(jù)庫,2).同時創(chuàng)建一個“diary”表(包含一個_id主鍵并自增長,topic字符型100長度,content字符型1000長度)3).在數(shù)據(jù)庫版本變化時請刪除diary表,并重新創(chuàng)建出diary表。參考:publicclassDBHelperextendsSQLiteOpenHelper{publicfinalstat(yī)icStringDATABASENAME="diaryOpenHelper.db";publicfinalstat(yī)icintDATABASEVERSION=1;//創(chuàng)建數(shù)據(jù)庫publicDBHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);}//創(chuàng)建表等機構(gòu)性文獻22publicvoidonCreate(SQLiteDatabasedb){Stringsql="creat(yī)etablediary"+"("+"_idintegerprimarykeyautoincrement,"+"topicvarchar(100),"+"contentvarchar(1000)"+")";db.execSQL(sql);}//若數(shù)據(jù)庫版本有更新,則調(diào)用此方法publicvoidonUpgrade(SQLiteDat(yī)abasedb,intoldVersion,intnewVersion){Stringsql="droptableifexistsdiary";db.execSQL(sql);this.onCreate(db);}}37.頁面上現(xiàn)有ProgressBar控件progressBar,請用書寫線程以10秒的的時間完畢其進度顯示工作。說明:publicclassProgressBarStuextendsActivity{ privateProgressBarprogressBar=null; protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);? setContentView(R.layout.progressbar); //從這到下是關鍵 ?progressBar=(ProgressBar)findViewById(R.id.progressBar);??progressbar.setMax(10);? progressbar.setProgress(0); Threadthread=newThread(newRunnable(){ @Override ? publicvoidrun(){?? ?intprogressBarMax=progressBar.getMax();? try{? ???while(progressBarMax!=progressBar.getProgress())?? ? {??? ?intstepProgress=progressBarMax/10;? ????intcurrentprogress=progressBar.getProgress(); ?? ? progressBar.setProgress(currentprogress+stepProgress);?? ?? Thread.sleep(1000);? ? }? ? }catch(InterruptedExceptione){ ?? e.printStackTrace();? } ? }? });??thread.start();? //關鍵結(jié)束 }}38.請描述Activity的生命周期。必調(diào)用的三個方法:onCreate()-->onStart()-->onResume(),用AAA表達(1)父Activity啟動子Activity,子Actvity退出,父Activity調(diào)用順序如下AAA-->onFreeze()-->onPause()-->onStop()-->onRestart()-->onStart(),onResume()…(2)用戶點擊Home,Actvity調(diào)用順序如下AAA-->onFreeze()-->onPause()-->onStop()--Maybe-->onDestroy()(3)調(diào)用finish(),Activity調(diào)用順序如下AAA-->onPause()-->onStop()-->onDestroy()(4)在父Activity上顯示透明的或非全屏的activity,Activity調(diào)用順序如下AAA-->onFreeze()-->onPause()(5)設備進入睡眠狀態(tài),Activity調(diào)用順序如下AAA-->onFreeze()-->onPause()onFreeze()不是Activity的生命周期方法,它目前被明名為onSaveInstanceState()方法。39.假如后臺的Activity由于某因素被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當前狀態(tài)?當你的程序中某一個ActivityA在運營時中,積極或被動地運營另一個新的ActivityB,這個時候A會執(zhí)行publicvoidonSaveInstanceStat(yī)e(BundleoutState)B完畢以后又會來找A,這個時候就有兩種情況,一種是A被回收,一種是沒有被回收,被回收的A就要重新調(diào)用onCreate()方法,不同于直接啟動的是這回onCreate()里是帶上參數(shù)savedInstanceState,沒被收回的就還是onResume就好了。savedInstanceState是一個Bundle對象,你基本上可以把他理解為系統(tǒng)幫你維護的一個Map對象。在onCreate()里你也許會用到它,假如正常啟動onCreate就不會有它,所以用的時候要判斷一下是否為空。if(savedInstanceState!=null){longid=savedInstanceStat(yī)e.getLong("id");}就像官方的Notepad教程里的情況,你正在編輯某一個note,忽然被中斷,那么就把這個note的id記住,再起來的時候就可以根據(jù)這個id去把那個note取出來,程序就完整一些。這也是看你的應用需不需要保存什么,比如你的界面就是讀取一個列表,那就不需要特殊記住什么。.40.如何將一個Activity設立成對話框窗口的樣式。在AndroidManifest.xml中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就變成半透明的41.如何退出Activity?如何安全退出已調(diào)用多個Activity的Application?對于單一Activity的應用來說,退出很簡樸,直接finish()即可。當然,也可以用killProcess()和System.exit()這樣的方法。但是,對于多Activity的應用來說,在打開多個Activity后,假如想在最后打開的Activity直接退出,上邊的方法都是沒有用的,由于上邊的方法都是結(jié)束一個Activity而已。就仿佛有人問,在應用里如何捕獲Home鍵,有人就會說用keyCode比較KEYCODE_HOME即可,而事實上假如不修改framework,主線不也許做到這一點同樣。所以,最佳還是自己親自試一下。那么,有沒有辦法直接退出整個應用呢?在2.1之前,可以使用ActivityManager的restartPackage方法。它可以直接結(jié)束整個應用。在使用時需要權限android.permission.RESTART_PACKAGES。注意不要被它的名字迷惑??墒?,在2.2,這個方法失效了。在2.2添加了一個新的方法,killBackgroundProcesses(),需要權限android.permission.KILL_BACKGROUND_PROCESSES??上У氖?,它和2.2的restartPackage同樣,主線起不到應有的效果。此外尚有一個方法,就是系統(tǒng)自帶的應用程序管理里,強制結(jié)束程序的方法,forceStopPackage()。它需要權限android.permission.FORCE_STOP_PACKAGES。并且需要添加android:sharedUserId="android.uid.system"屬性同樣可惜的是,該方法是非公開的,他只能運營在系統(tǒng)進程,第三方程序無法調(diào)用。由于需要在Android.mk中添加LOCAL_CERTIFICATE:=platform。而Android.mk是用于在Android源碼下編譯程序用的。從以上可以看出,在2.2,沒有辦法直接結(jié)束一個應用,而只能用自己的辦法間接辦到?,F(xiàn)提供幾個方法,供參考:1、拋異常強制退出:該方法通過拋異常,使程序ForceClose。驗證可以,但是,需要解決的問題是,如何使程序結(jié)束掉,而不彈出ForceClose的窗口。2、記錄打開的Activity:每打開一個Activity,就記錄下來。在需要退出時,關閉每一個Activity即可。3、發(fā)送特定廣播:在需要結(jié)束應用時,發(fā)送一個特定的廣播,每個Activity收到廣播后,關閉即可。4、遞歸退出在打開新的Activity時使用startActivityForResult,然后自己加標志,在onActivityResult中解決,遞歸關閉。除了第一個,都是想辦法把每一個Activity都結(jié)束掉,間接達成目的。但是這樣做同樣不完美。你會發(fā)現(xiàn),假如自己的應用程序?qū)γ恳粋€Activity都設立了nosensor,在兩個Activity結(jié)束的間隙,sensor也許有效了。但至少,我們的目的達成了,并且沒有影響用戶使用。為了編程方便,最佳定義一個Activity基類,解決這些共通問題。43.請介紹下Android的數(shù)據(jù)存儲方式。一.SharedPreferences方式二.文獻存儲方式三.SQLite數(shù)據(jù)庫方式四.內(nèi)容提供器(Contentprovider)方式五.網(wǎng)絡存儲方式44.請介紹下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的。創(chuàng)建一個屬于你自己的ContentProvider或者將你的數(shù)據(jù)添加到一個已經(jīng)存在的ContentProvider中,前提是有相同數(shù)據(jù)類型并且有寫入Contentprovider的權限。?把自己的數(shù)據(jù)通過uri的形式共享出去.android系統(tǒng)下不同程序數(shù)據(jù)默認是不能共享訪問?需要去實現(xiàn)一個類去繼承ContentProvider publicclassPersonContentProviderextendsContentProvider{?publicbooleanonCreate(){ ?//.. }query(Uri,String[],String,String[],String)insert(Uri,ContentValues)updat(yī)e(Uri,ContentValues,String,String[])delete(Uri,String,String[])45.如何啟用Service,如何停用Service。Android中的service類似于windows中的service,service一般沒有用戶操作界面,它運營于系統(tǒng)中不容易被用戶發(fā)現(xiàn),可以使用它開發(fā)如監(jiān)控之類的程序。一。環(huán)節(jié)第一步:繼承Service類,并在合適的回調(diào)方法中編寫業(yè)務代碼。publicclassSMSServiceextendsService{}第二步:在AndroidManifest.xml文獻中的<application>節(jié)點里對服務進行配置:<serviceandroid:name=".DemoService"/>二。Context.startService()和Context.bindService服務不能自己運營,需要通過調(diào)用Context.startService()或Context.bindService()方法啟動服務。這兩個方法都可以啟動Service,但是它們的使用場合有所不同。1.使用startService()方法啟用服務,調(diào)用者與服務之間沒有關連,即使調(diào)用者退出了,服務仍然運營。使用bindService()方法啟用服務,調(diào)用者與服務綁定在了一起,調(diào)用者一旦退出,服務也就終止。2.采用Context.startService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreat(yī)e()方法,接著調(diào)用onStart()方法。假如調(diào)用startService()方法前服務已經(jīng)被創(chuàng)建,多次調(diào)用startService()方法并不會導致多次創(chuàng)建服務,但會導致多次調(diào)用onStart()方法。采用startService()方法啟動的服務,只能調(diào)用Context.stopService()方法結(jié)束服務,服務結(jié)束時會調(diào)用onDestroy()方法。3.采用Context.bindService()方法啟動服務,在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate()方法,接著調(diào)用onBind()方法。這個時候調(diào)用者和服務綁定在一起。假如調(diào)用者退出了,系統(tǒng)就會先調(diào)用服務的onUnbind()方法,。接著調(diào)用onDestroy()方法。假如調(diào)用bindService()方法前服務已經(jīng)被綁定,多次調(diào)用bindService()方法并不會導致多次創(chuàng)建服務及綁定(也就是說onCreate()和onBind()方法并不會被多次調(diào)用)。假如調(diào)用者希望與正在綁定的服務解除綁定,可以調(diào)用unbindService()方法,調(diào)用該方法也會導致系統(tǒng)調(diào)用服務的onUnbind()-->onDestroy()方法。三。Service的生命周期1.Service常用生命周期回調(diào)方法如下:onCreate()該方法在服務被創(chuàng)建時調(diào)用,該方法只會被調(diào)用一次,無論調(diào)用多少次startService()或bindService()方法,服務也只被創(chuàng)建一次。onDestroy()該方法在服務被終止時調(diào)用。2.Context.startService()啟動Service有關的生命周期方法onStart()只有采用Context.startService()方法啟動服務時才會回調(diào)該方法。該方法在服務開始運營時被調(diào)用。多次調(diào)用startService()方法盡管不會多次創(chuàng)建服務,但onStart()方法會被多次調(diào)用。3.Context.bindService()啟動Service有關的生命周期方法onBind()只有采用Context.bindService()方法啟動服務時才會回調(diào)該方法。該方法在調(diào)用者與服務綁定期被調(diào)用,當調(diào)用者與服務已經(jīng)綁定,多次調(diào)用Context.bindService()方法并不會導致該方法被多次調(diào)用。onUnbind()只有采用Context.bindService()方法啟動服務時才會回調(diào)該方法。該方法在調(diào)用者與服務解除綁定期被調(diào)用。46.注冊廣播接受器有幾種方式,這些方式有何優(yōu)缺陷?請談談Android引入廣播機制的用意。Android廣播機制(兩種注冊方法)在android下,要想接受廣播信息,那么這個廣播接受器就得我們自己來實現(xiàn)了,我們可以繼承BroadcastReceiver,就可以有一個廣播接受器了。有個接受器還不夠,我們還得重寫BroadcastReceiver里面的onReceiver方法,當來廣播的時候我們要干什么,這就要我們自己來實現(xiàn),但是我們可以搞一個信息防火墻。具體的代碼:publicclassSmsBroadCastReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){Bundlebundle=intent.getExtras();31Object[]object=(Object[])bundle.get("pdus");SmsMessagesms[]=newSmsMessage[object.length];for(inti=0;i<object.length;i++){sms[0]=SmsMessage.createFromPdu((byte[])object[i]);Toast.makeText(context,"來自"+sms[i].getDisplayOriginatingAddress()+"的消息是:"+sms[i].getDisplayMessageBody(),Toast.LENGTH_SHORT).show();}//終止廣播,在這里我們可以稍微解決,根據(jù)用戶輸入的號碼可以實現(xiàn)短信防火墻。abortBroadcast();}}當實現(xiàn)了廣播接受器,還要設立廣播接受器接受廣播信息的類型,這里是信息:android.provider.Telephony.SMS_RECEIVED我們就可以把廣播接受器注冊到系統(tǒng)里面,可以讓系統(tǒng)知道我們有個廣播接受器。這里有兩種,一種是代碼動態(tài)注冊://生成廣播解決smsBroadCastReceiver=newSmsBroadCastReceiver();//實例化過濾器并設立要過濾的廣播IntentFilterintentFilter=newIntentFilter("android.provider.Telephony.SMS_RECEIVED");//注冊廣播BroadCastReceiverActivity.this.registerReceiver(smsBroadCastReceiver,intentFilter);一種是在AndroidManifest.xml中配置廣播<?。瓘V播注冊--><receiverandroid:name=".SmsBroadCastReceiver"><intent-filterandroid:priority="20"><actionandroid:name="android.provider.Telephony.SMS_RECEIVED"/></intent-filter></receiver>……<!--權限申請--><uses-permissionandroid:name="android.permission.RECEIVE_SMS"></uses-permission></manifest>兩種注冊類型的區(qū)別是:1)第一種不是常駐型廣播,也就是說廣播跟隨程序的生命周期而存在。2)第二種是常駐型,也就是說當應用程序關閉后,假如有信息廣播來,程序也會被系統(tǒng)調(diào)用自動運營。47.請解釋下在單線程模型中Message、Handler、MessageQueue、Looper之間的關系。先看圖:答:簡樸的說,Handler獲取當前線程中的looper?qū)ο螅琹ooper用來從存放Message的MessageQueue中取出Message,再有Handler進行Message的分發(fā)和解決。MessageQueue(消息隊列):用來存放通過Handler發(fā)布的消息,通常附屬于某一個創(chuàng)建它的線程,可以通過Looper.myQueue()得到當前線程的消息隊列。Handler:可以發(fā)布或者解決一個消息或者操作一個Runnable,通過Handler發(fā)布消息,消息將只會發(fā)送到與它關聯(lián)的消息隊列,然也只能解決該消息隊列中的消息Looper:是Handler和消息隊列之間通訊橋梁,程序組件一方面通過Handler把消息傳遞給Looper,Looper把消息放入隊列。Looper也把消息隊列里的消息廣播給所有的Handler,Handler接受到消息后調(diào)用handleMessage進行解決Message:消息的類型,在Handler類中的handleMessage方法中得到單個的消息進行解決在單線程模型下,為了線程通信問題,Android設計了一個MessageQueue(消息隊列),線程間可以通過該MessageQueue并結(jié)合Handler和Looper組件進行信息互換。下面將對它們進行分別介紹:1.MessageMessage消息,理解為線程間交流的信息,解決數(shù)據(jù)后臺線程需要更新UI,則發(fā)送Message內(nèi)含一些數(shù)據(jù)給UI線程。2.HandlerHandler解決者,是Message的重要解決者,負責Message的發(fā)送,Message內(nèi)容的執(zhí)行解決。后臺線程就是通過傳進來的Handler對象引用來sendMessage(Message)。而使用Handler,需要implement該類的handleMessage(Message)方法,它是解決這些Message的操作內(nèi)容,例如UpdateUI。通常需要子類化Handler來實現(xiàn)handleMessage方法。3.MessageQueueMessageQueue消息隊列,用來存放通過Handler發(fā)布的消息,按照先進先出執(zhí)行。每個messagequeue都會有一個相應的Handler。Handler會向messagequeue通過兩種方法發(fā)送消息:sendMessage或post。這兩種消息都會插在messagequeue隊尾并按先進先出執(zhí)行。但通過這兩種方法發(fā)送的消息執(zhí)行的方式略有不同:通過sendMessage發(fā)送的是一個message對象,會被Handler的handleMessage()函數(shù)解決;而通過post方法發(fā)送的是一個runnable對象,則會自己執(zhí)行。4.LooperLooper是每條線程里的MessageQueue的管家。Android沒有Global的MessageQueue,而Android會自動替主線程(UI線程)建立MessageQueue,但在子線程里并沒有建立MessageQueue。所以調(diào)用Looper.getMainLooper()得到的主線程的Looper不為NULL,但調(diào)用Looper.myLooper()得到當前線程的Looper就有也許為NULL。對于子線程使用Looper,APIDoc提供了對的的使用方法:這個Message機制的大約流程:1.在Looper.loop()方法運營開始后,循環(huán)地按照接受順序取出MessageQueue里面的非NULL的Message。2.一開始MessageQueue里面的Message都是NULL的。當Handler.sendMessage(Message)到MessageQueue,該函數(shù)里面設立了那個Message對象的target屬性是當前的Handler對象。隨后Looper取出了那個Message,則調(diào)用該Message的target指向的Hander的dispatchMessage函數(shù)對Message進行解決。在dispatchMessage方法里,如何解決Message則由用戶指定,三個判斷,優(yōu)先級從高到低:1)Message里面的Callback,一個實現(xiàn)了Runnable接口的對象,其中run函數(shù)做解決工作;2)Handler里面的mCallback指向的一個實現(xiàn)了Callback接口的對象,由其handleMessage進行解決;3)解決消息Handler對象相應的類繼承并實現(xiàn)了其中handleMessage函數(shù),通過這個實現(xiàn)的handleMessage函數(shù)解決消息。由此可見,我們實現(xiàn)的handleMessage方法是優(yōu)先級最低的!3.Handler解決完該Message(updateUI)后,Looper則設立該Message為NULL,以便回收!在網(wǎng)上有很多文章講述主線程和其他子線程如何交互,傳送信息,最終誰來執(zhí)行解決信息之類的,個人理解是最簡樸的方法——判斷Handler對象里面的Looper?qū)ο笫菍儆谀臈l線程的,則由該線程來執(zhí)行!1.當Handler對象的構(gòu)造函數(shù)的參數(shù)為空,則為當前所在線程的Looper;2.Looper.getMainLooper()得到的是主線程的Looper對象,Looper.myLooper()得到的是當前線程的Looper對象。48.AIDL的全稱是什么?如何工作?能解決哪些類型的數(shù)據(jù)?AIDL的英文全稱是AndroidInterfaceDefineLanguage當A進程要去調(diào)用B進程中的service時,并實現(xiàn)通信,我們通常都是通過AIDL來操作的A工程:一方面我們在net.blogjava.mobile.aidlservice包中創(chuàng)建一個RemoteService.a(chǎn)idl文獻,在里面我們自定義一個接口,具有方法get。ADT插件會在gen目錄下自動生成一個RemoteService.java文獻,該類中具有一個名為RemoteService.stub的內(nèi)部類,該內(nèi)部類中具有aidl文獻接口的get方法。說明一:aidl文獻的位置不固定,可以任意,然后定義自己的MyService類,在MyService類中自定義一個內(nèi)部類去繼承RemoteService.stub這個內(nèi)部類,實現(xiàn)get方法。在onBind方法中返回這個內(nèi)部類的對象,系統(tǒng)會自動將這個對象封裝成IBinder對象,傳遞給他的調(diào)用者。另一方面需要在AndroidManifest.xml文獻中配置MyService類,代碼如下:<!--注冊服務--><serviceandroid:name=".MyService"><intent-filter><!--指定調(diào)用AIDL服務的ID--><actionandroid:name="net.blogjava.mobile.aidlservice.RemoteService"/></intent-filter></service>為什么要指定調(diào)用AIDL服務的ID,就是要告訴外界MyService這個類可以被別的進程訪問,只要別的進程知道這個ID,正是有了這個ID,B工程才干找到A工程實現(xiàn)通信。說明:AIDL并不需要權限B工程:一方面我們要將A工程中生成的RemoteService.java文獻拷貝到B工程中,在bindService方法中綁定aidl服務,綁定AIDL服務就是將RemoteService的ID作為intent的action參數(shù)。說明:假如我們單獨將RemoteService.a(chǎn)idl文獻放在一個包里,那個在我們將gen目錄下的該包拷貝到B工程中。假如我們將RemoteService.aidl文獻和我們的其他類存放在一起,那么我們在B工程中就要建立相應的包,以保證RmoteService.java文獻的報名對的,我們不能修改RemoteService.java文獻bindService(newInten("net.blogjava.mobile.aidlservice.RemoteService"),serviceConnection,Context.BIND_AUTO_CREATE);ServiceConnection的onServiceConnected(ComponentNamename,IBinderservice)方法中的service參數(shù)就是A工程中MyService類中繼承了RemoteService.stub類的內(nèi)部類的對象。49.請解釋下Android程序運營時權限與文獻系統(tǒng)權限的區(qū)別。Android程序執(zhí)行需要讀取到安全敏感項必需在androidmanifest.xml中聲明相關權限請求,由Dalvik(android授權,比如打電話,訪問網(wǎng)絡,獲取坐標,讀寫sd卡,讀寫聯(lián)系人等..安裝的時候會提醒用戶…文獻系統(tǒng)的權限是linux內(nèi)核權限.比如說sharedpreference里面的Context.Mode.private/Context.Mode.world_read_able/Context.Mode_world_writeable50.系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。要指定某瀏覽器訪問頁面,除了設立action、傳遞基本的uri參數(shù)外,還需要顯式制定要啟動的瀏覽器的ClassName(通過inteng.setClassName()方法)。51.你如何評價Android系統(tǒng)優(yōu)缺陷。答:Android平臺手機5大優(yōu)勢:一、開放性在優(yōu)勢方面,Android平臺一方面就是其開發(fā)性,開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來。顯著的開放性可以使其擁有更多的開發(fā)者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將不久走向成熟。開放性對于Android的發(fā)展而言,有助于積累人氣,里的人氣涉及消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。二、掙脫運營商的束縛在過去很長的一段時間,特別是在歐美地區(qū),手機應用往往受到運營商制約,使用什么功能接入什么網(wǎng)絡,幾乎都受到運營商的控制。從去年iPhone上市,用戶可以更加方便地連接網(wǎng)絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網(wǎng)絡的逐步過渡和提高,手機隨意接入網(wǎng)絡已不是運營商口中的笑談,當你可以通過手機IM軟件方便地進行即時聊天時,再回想不久前天價的彩信和圖鈴下載業(yè)務,是不是像惡夢同樣?互聯(lián)網(wǎng)巨頭Google推動的Android終端天生就有網(wǎng)絡特色,將讓用戶離互聯(lián)網(wǎng)更近。三、豐富的硬件選擇這一點還是與Android平臺的開放性相關,由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會影響到數(shù)據(jù)同步、甚至軟件的兼容,好比你從諾基亞Symbian風格手機一下改用蘋果iPhone,同時還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)系人等資料更是可以方便地轉(zhuǎn)移,是不是非常方便呢?四、不受任何限制的開發(fā)商Android平臺提供應第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾,可想而知,會有多少新奇別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如可控制正是留給Android難題之一。五、無縫結(jié)合的Google應用如今叱詫互聯(lián)網(wǎng)的Google已經(jīng)走過2023度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務如地圖、郵件、搜索等已經(jīng)成為連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺手機將無縫結(jié)合這些優(yōu)秀的Google服務。再說Android的5大局限性:一、安全和隱私由于手機與互聯(lián)網(wǎng)的緊密聯(lián)系,個人隱私很難得到保守。除了上網(wǎng)過程中經(jīng)意或不經(jīng)意留下的個人足跡,Google這個巨人也時時站在你的身后,洞穿一切,因此,互聯(lián)網(wǎng)的進一步將會帶來新一輪的隱私危機。二、一方面開賣Android手機的不是最大運營商眾所周知,T-Mobile在23

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論