日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android面试题总结加强

發布時間:2025/6/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android面试题总结加强 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在加強版的基礎上又再加強的android應用面試題集

有些補充略顯臃腫,只為學習
1.activity的生命周期。

方法

描述

可被殺死

下一個

onCreate()

activity第一次被創建的時候調用。這里是你做所有初始化設置的地方──創建視圖、設置布局、綁定數據至列表等。如果曾經有狀態記錄(參閱后述Saving?Activity?State。),則調用此方法時會傳入一個包含著此activity以前狀態的包對象做為參數。?

總繼之以onStart()。

onStart()

????

onRestart()

activity停止后onStop(),在再次啟動之前被調用。?

總繼之以onStart()。

onStart()

onStart()

activity正要變得為用戶所見時被調用。?

activity轉向前臺時繼以onResume(),在activity變為隱藏時繼以onStop()

onResume()?
or
onStop()

????

onResume()

activity開始與用戶進行交互之前被調用。此時activity位于堆棧頂部,并接受用戶輸入。?

繼之以onPause()

onPause()

onPause()

當系統將要啟動另一個activity時調用。此方法主要用來將未保存的變化進行持久化,停止類似動畫這樣耗費CPU的動作等。這一切動作應該在短時間內完成,因為下一個activity必須等到此方法返回后才會繼續。?

activity重新回到前臺是繼以onResume()。當activity變為用戶不可見時繼以onStop()

onResume()?
or
onStop()

onStop()

activity不再為用戶可見時調用此方法。這可能發生在它被銷毀或者另一個activity(可能是現存的或者是新的)回到運行狀態并覆蓋了它。?

如果activity再次回到前臺跟用戶交互則繼以onRestart(),如果關閉activity則繼以onDestroy()

onRestart()?
or
onDestroy()

onDestroy()

activity銷毀前調用。這是activity接收的最后一個調用。這可能發生在activity結束(調用了它的?finish()?方法)或者因為系統需要空間所以臨時的銷毀了此acitivity的實例時。你可以用isFinishing()?方法來區分這兩種情況。

nothing


(補充)

1、onCreate():當Activity被創建的時候調用(第一次)。操作:設置布局文件,初始化視圖,綁定數據文件等。


2、onStart():當Activity能被我們看到的時候。


3、onResume():當Activity獲得用戶的焦點的時候,就是能被用戶操作的時候。


4、onPause()[pause暫停的意思]:Activity暫停。應用程序啟動了另一個Activity的時候。例子:來了一個電話,系統啟動了電話Activity。在這個函數里要做的就是把Activity的數據保存起來,當接完電話的時候,再把這些數據讀出來,把原來的Activity還原出來。


5、onstop():當第二個Activity把第一個Activity完全遮擋住了的時候。對話框并沒有把原來的Activity完全遮擋起來,不會調用。


6、onDestroy():銷毀Activity。1)調用了finish()方法。2)系統資源不夠用了。


函數調用過程:

啟動第一個Activity的時候:

第一次創建onCreate()-->Activity可見了onStart()-->Activity可以操作了onResume()。

?

點擊第一個Activity上的按鈕通過Intent跳到第二個Activity:

第一個Activity暫停onPause()-->創建第二個ActivityonCreate()-->Activity可見onStart()-->Activity可操作onResume()-->第一個Activity被第二個Activity完全遮蓋onStop()(如果調用了finish(),或者系統資源緊缺,則會被銷毀onDestory())


?

點擊系統返回功能建,從第二個Activity回到第一個Activity?:

第二個Activity暫停onPause()-->第一個Activity重啟動OnRestart()(并沒有被銷毀,如果銷毀了則要創建onCreate())-->第一個Activity可見onStart()-->第一個Activity可操作onResume()-->第二個Activity被完全遮蓋onStop()(如果調用了finish(),或者系統資源緊缺,則會被銷毀onDestory())。



2.橫豎屏切換時候activity的生命周期

1.不設置Activityandroid:configChanges,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次.?

2.設置Activityandroid:configChanges="orientation",切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次.?

3.設置Activityandroid:configChanges="orientation|keyboardHidden",切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法.

3.android中的動畫有哪幾類,它們的特點和區別是什么?

?  

Android提供兩種創建簡單動畫的機制:tweened animation(補間動畫)?和 frame-by-frame animation(幀動畫).

  • tweened animation:通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果
  • frame-by-frame animation:順序播放事先做好的圖像,跟電影類似

這兩種動畫類型都能在任何View對象中使用,用來提供簡單的旋轉計時器,activity圖標及其他有用的UI元素。Tweened animation被andorid.view.animation包所操作;frame-by-frame animation被android.graphics.drawable.AnimationDrawable類所操作。

想了解更多關于創建tweened和frame-by-frame動畫的信息,讀一下Dev Guide-Graphics-2D Graphics里面相關部分的討論。

?

Animation 是以 XML格式定義的,定義好的XML文件存放在res/anim中。由于Tween Animation與Frame-by-frame Animation的定義、使用都有很大的差異,我們將分開介紹,本篇幅中主要介紹Tween Animation的定義與使用。按照XML文檔的結構【父節點,子節點,屬性】來介紹Tween Animation,其由4種類型:

  • Alpha: 漸變透明度動畫效果
  • Scale:漸變尺寸伸縮動畫效果
  • Translate:畫面轉換位置移動動畫效果
  • Rotate: 畫面轉換角度移動動畫效果

在介紹以上4種 類型前,先介紹Tween Animation共同的節點屬性。

表一

屬性[類型]功能?
Duration[long]屬性為動畫持續時間時間以毫秒為單位
fillAfter [boolean]當設置為true ,該動畫轉化在動畫結束后被應用
fillBefore[boolean]當設置為true ,該動畫轉化在動畫開始前被應用

interpolator

指定一個動畫的插入器有一些常見的插入器
accelerate_decelerate_interpolator
加速-減速 動畫插入器
accelerate_interpolator
加速-動畫插入器
decelerate_interpolator
減速- 動畫插入器
其他的屬于特定的動畫效果
repeatCount[int]動畫的重復次數?
RepeatMode[int]定義重復的行為1:重新開始? 2:plays backward
startOffset[long]動畫之間的時間間隔,從上次動畫停多少時間開始執行下個動畫
zAdjustment[int]定義動畫的Z Order的改變0:保持Z Order不變
1:保持在最上層
-1:保持在最下層

?

下面我們開始結 合具體的例子,分別介紹4種類型各自特有的節點元素。

表二

XML節點功能說明
alpha漸變透明度動畫效果
<alpha
android:fromAlpha=”0.1″
android:toAlpha=”1.0″
android:duration=”3000″ />
fromAlpha

屬性為動畫起始時透明度

0.0表示完全不透明
1.0表示完全透明
以上值取0.0-1.0之間的float數據類型的數字
toAlpha屬性為動畫結束時透明度

表三

scale漸變尺寸伸縮動畫效果
<scale
android:interpolator= “@android:anim/accelerate_decelerate_interpolator”
android:fromXScale=”0.0″
android:toXScale=”1.4″
android:fromYScale=”0.0″
android:toYScale=”1.4″
android:pivotX=”50%”
android:pivotY=”50%”
android:fillAfter=”false”
android:startOffset=“700”
android:duration=”700″
android:repeatCount=”10″ />
fromXScale[float] fromYScale[float]為動畫起始時,X、Y坐標上的伸縮尺寸0.0表示收縮到沒有
1.0表示正常無伸縮
值小于1.0表示收縮
值大于1.0表示放大
toXScale [float]
toYScale[float]
為動畫結束時,X、Y坐標上的伸縮尺寸
pivotX[float]
pivotY[float]
為動畫相對于物件的X、Y坐標的開始位置屬性值說明:從0%-100%中取值,50%為物件的X或Y方向坐標上的中點位置
????

表四

translate畫面轉換位置移動動畫效果
<translate
android:fromXDelta=”30″
android:toXDelta=”-80″
android:fromYDelta=”30″
android:toYDelta=”300″
android:duration=”2000″ />
fromXDelta
toXDelta
為動畫、結束起始時 X坐標上的位置?
fromYDelta
toYDelta
為動畫、結束起始時 Y坐標上的位置?
????

表五

rotate畫面轉移旋轉動畫效果
<rotate
android:interpolator=”@android:anim/accelerate_decelerate_interpolator”
android:fromDegrees=”0″
android:toDegrees=”+350″
android:pivotX=”50%”
android:pivotY=”50%”
android:duration=”3000″ />
fromDegrees為動畫起始時物件的角度說明
當角度為負數——表示逆時針旋轉
當角度為正數——表示順時針旋轉
(負數from——to正數:順時針旋轉)
(負數from——to負數:逆時針旋轉)
(正數from——to正數:順時針旋轉)
(正數from——to負數:逆時針旋轉)
toDegrees

為動畫結束時物 件旋轉的角度 可以大于360度


pivotX
pivotY
為動畫相對于物件的X、Y坐標的開始位置說明:以上兩個屬性值 從0%-100%中取值
50%為物件的X或Y方向坐標上的中點位置

?

Android SDK提供了基類:Animation,包含大量的set/getXXXX()函數來設置、讀取Animation的屬性,也就是前面表一中顯示的各種屬性。Tween Animation由4種類型:alpha、scale、translate、roate,在Android SDK中提供了相應的類,Animation類派生出了AlphaAnimation、ScaleAnimation、 TranslateAnimation、RotateAnimation分別實現了?改變 Alpha值??伸縮??平移??旋轉?等動畫,每個子類都在父類的基礎上增加了各自獨有的屬性。

(補充)

? ? ?Android的動畫效果分為兩種,一種是tweened animation(補間動畫),第二種是frame by frame animation。一般我們用的是第一種。補間動畫又分為AlphaAnimation,透明度轉換 ?RotateAnimation,旋轉轉換 ?ScaleAnimation,縮放轉換 ?TranslateAnimation 位置轉換(移動)。
動畫效果在anim目錄下的xml文件中定義,在程序中用AnimationUtils.loadAnimation(Context context,int ResourcesId)載入成Animation對象,在需要顯示動畫效果時,執行需要動畫的View的startAnimation方法,傳入Animation,即可。切換Activity也可以應用動畫效果,在startActivity方法后,執行overridePendingTransition方法,兩個參數分別是切換前的動畫效果,切換后的動畫效果

4.?一條最長的短信息約占多少byte?

?  中文70(包括標點),英文160個字節。

5.handler機制的原理

  andriod提供了?Handler?和?Looper?來滿足線程間的通信。Handler?先進先出原則。Looper類用來管理特定線程內對象之間的消息交換(Message?Exchange)

  1)Looper:?一個線程可以產生一個Looper對象,由它來管理此線程里的Message?Queue(消息隊列)

? ? ? ?2)Handler:?你可以構造Handler對象來與Looper溝通,以便push新消息到Message?Queue;或者接收LooperMessage?Queue取出)所送來的消息。

  3)?Message?Queue(消息隊列):用來存放線程放入的消息。

  4)線程:UI?thread?通常就是main?thread,而Android啟動程序時會替它建立一個Message?Queue

6.什么是嵌入式實時操作系統,?Android?操作系統屬于實時操作系統嗎?


  嵌入式實時操作系統是指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,并控制所有實時任務協調一致運行的嵌入式操作系統。主要用于工業控制、?軍事設備、?航空航天等領域對系統的響應時間有苛刻的要求,這就需要使用實時系統。又可分為軟實時和硬實時兩種,而android是基于linux內核的,因此屬于軟實時

7.android中線程與線程,進程與進程之間如何通信

1、一個?Android?程序開始運行時,會單獨啟動一個Process
???默認情況下,所有這個程序中的Activity或者Service都會跑在這個Process
???默認情況下,一個Android程序也只有一個Process,但一個Process下卻可以有許多個Thread
2、一個?Android?程序開始運行時,就有一個主線程Main?Thread被創建。該線程主要負責UI界面的顯示、更新和控件交互,所以又叫UI?Thread
???一個Android程序創建之初,一個Process呈現的是單線程模型--Main?Thread,所有的任務都在一個線程中運行。所以,Main?Thread所調用的每一個函數,其耗時應該越短越好。而對于比較費時的工作,應該設法交給子線程去做,以避免阻塞主線程(主線程被阻塞,會導致程序假死?現象)。?

3Android單線程模型:Android?UI操作并不是線程安全的并且這些操作必須在UI線程中執行。如果在子線程中直接修改UI,會導致異常

8.Android?dvm的進程和Linux的進程,?應用程序的進程是否為同一個概念?

  DVM指dalivk的虛擬機。每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。而每一個DVM都是在Linux?中的一個進程,所以說可以認為是同一個概念。?

9.sim卡的EF?文件有何作用?

  sim卡的文件系統有自己規范,主要是為了和手機通訊,sim本?身可以有自己的操作系統,EF就是作存儲并和手機通訊用的

11.Activity變成一個窗口:Activity屬性設定?

  講點輕松的吧,可能有人希望做出來的應用程序是一個漂浮在手機主界面的東西,那么很?簡單你只需要設置?一下Activity的主題就可以了在AndroidManifest.xml?中定義?Activity的?地方一句話:?

  Xml代碼?

  1.?android?:theme="@android:style/Theme.Dialog"?

  這就使你的應用程序變成對話框的形式彈出來了,或者?

  Xml代碼?

  1.?android:theme="@android:style/Theme.Translucent"?

  就變成半透明的,[友情提示-.-]類似的這種activity的屬性可以在android.R.styleable?類的AndroidManifestActivity?方法中看到,AndroidManifest.xml中所有元素的屬性的介紹都可以參考這個類android.R.styleable?

  上面說的是屬性名稱,具體有什么值是在android.R.style中?可以看到,比如這個"@android:style/Theme.Dialog"?就對應于android.R.style.Theme_Dialog?,('_'換成'.'?<?--注意:這個是文章內容不是笑臉)就可以用在描述文件?中了,找找類定義和描述文件中的對應關系就都明白了。?

12.如何將SQLite數據庫(dictionary.db文件)與apk文件一起發布??

  解答:可以將dictionary.db文件復制到Eclipse?Android工程中的res raw目錄中。所有在res raw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件。可以將dictionary.db文件復制到res raw目錄中?

13.如何將打開res?aw目錄中的數據庫文件??

  解答:在Android中不能直接打開res raw目錄中的數據庫文件,而需要在程序第一次啟動時將該文件復制到手機內存或SD卡的某個目錄中,然后再打開該數據庫文件。復制的基本方法是使用getResources().openRawResource方法獲得res raw目錄中資源的?InputStream對象,然后將該InputStream對象中的數據寫入其他的目錄中相應文件中。在Android?SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法來打開任意目錄中的SQLite數據庫文件。?

14.在androidmvc的具體體現

Android?的官方建議應用程序的開發采用MVC?模式。何謂MVC?先看看下圖

MVC?Model,View,Controller?的縮寫,從上圖可以看出MVC?包含三個部分:

..?模型(Model)對象:是應用程序的主體部分,所有的業務邏輯都應該寫在該

層。

..?視圖(View)對象:是應用程序中負責生成用戶界面的部分。也是在整個

MVC?架構中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結果。

..?控制器(Control)對象:是根據用戶的輸入,控制用戶界面數據顯示及更新

Model?對象狀態的部分,控制器更重要的一種導航功能,響應用戶出發的相

關事件,交給M 層處理。

Android?鼓勵弱耦合和組件的重用,在Android?MVC?的具體體現如下

? ? ? ?1)視圖層(view:一般采用xml文件進行界面的描述,使用的時候可以非常方便的引入,當然,如何你對android了解的比較多的話,就一定可以想到在android中也可以使用javascript+html等的方式作為view層,當然這里需要進行javajavascript之間的通信,幸運的是,android提供了它們之間非常方便的通信實現。

  2)控制層(controller):android的控制層的重任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在acitivity中寫代碼,要通過activity交給model層做業務邏輯的處理,?這樣做的另外一個原因是android中的acitivity的響應時間是5s,如果耗時的操作放在這里,程序就很容易被回收掉。

  3)模型層(model):數據庫的操作、對網絡等的操作都應該在model里面處理,當然對業務計算等操作也是必須放在的該層的。


15.Android系統的架構

android的系統架構和其操作系統一樣,采用了分層的架構。從架構圖看,android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和linux核心層。

  1.應用程序

  Android會同一系列核心應用程序包一起發布,該應用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。

  2.應用程序框架

  開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊并且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性限制)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。

  隱藏在每個應用后面的是一系列的服務和系統,?其中包括;

  *?豐富而又可擴展的視圖(Views),可以用來構建應用程序,?它包括列表(lists),網格(grids),文本框(text?boxes),按鈕(buttons),?甚至可嵌入的web瀏覽器。

  *?內容提供器(Content?Providers)使得應用程序可以訪問另一個應用程序的數據(如聯系人數據庫),?或者共享它們自己的數據

  *?資源管理器(Resource?Manager)提供?非代碼資源的訪問,如本地字符串,圖形,和布局文件(?layout?files?)

  *?通知管理器?(Notification?Manager)?使得應用程序可以在狀態欄中顯示自定義的提示信息。

  *?活動管理器(?Activity?Manager)?用來管理應用程序生命周期并提供常用的導航回退功能。

  有關更多的細節和怎樣從頭寫一個應用程序,請參考?如何編寫一個?Android?應用程序.

  3.系統運行庫

  1)程序庫

  Android?包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過?Android?應用程序框架為開發者提供服務。以下是一些核心庫:

  *?系統?C?庫?-?一個從?BSD?繼承來的標準?C?系統函數庫(?libc?),?它是專門為基于?embedded?linux?的設備定制的。

  *?媒體庫?-?基于?PacketVideo?OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時支持靜態圖像文件。編碼格式包括MPEG4,?H.264,?MP3,?AAC,?AMR,?JPG,?PNG?

  *?Surface?Manager?-?對顯示子系統的管理,并且為多個應用程序提?供了2D3D圖層的無縫融合。

  *?LibWebCore?-?一個最新的web瀏覽器引擎用,支持Android瀏覽器和一個可嵌入的web視圖。

  *?SGL?-?底層的2D圖形引擎

  *?3D?libraries?-?基于OpenGL?ES?1.0?APIs實現;該庫可以使用硬件?3D加速(如果可用)或者使用高度優化的3D軟加速。

  *?FreeType?-位圖(bitmap)和矢量(vector)字體顯示。

  *?SQLite?-?一個對于所有應用程序可用,功能強勁的輕型關系型數據庫引擎。

  2)Android?運行庫

  Android?包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數功能。

  每一個Android應用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik被設計成一個設備可以同時高效地運行多個虛擬系統。?Dalvik虛擬機執行(.dex)Dalvik可執行文件,該格式文件針對小內存使用做了優化。同時虛擬機是基于寄存器的,所有的類都經由JAVA編譯器編譯,然后通過SDK中?的?“dx”?工具轉化成.dex格式由虛擬機執行。

  Dalvik虛擬機依賴于linux內核的一些功能,比如線程機制和底層內存管理機制。

  4.Linux?內核

Android?的核心系統服務依賴于?Linux?2.6?內核,如安全性,內存管理,進程管理,?網絡協議棧和驅動模型。?Linux?內核也同時作為硬件和軟件棧之間的抽象層。

(補充)




16.Android常用控件的信息

單選框(RadioButtonRadioGroup)

RadioGroup用于對單選框進行分組相同組內的單選框只有一個單選框被選中

事件:setOnCheckedChangeListener(),處理單選框被選擇事件。把RadioGroup.OnCheckedChangeListener實例作為參數傳入。


多選框(CheckBox):

每個多選框都是獨立的,可以通過迭代所有的多選框,然后根據其狀態是否被選中在獲取其值。

事件:setOnCheckedChangeListener(),處理多選框被選擇事件。把CheckBox.OnCheckedChangeListener()實例作為參數傳入。


下拉列表框(Spinner)

Spinner.getItemAtPosition(Spinner.getSelectedItemPosition());獲取下拉列表框的值。

事件:setOnItemSelectedListener(),處理下拉列表框被選擇事件把Spinner.OnItemSelectedListener()實例作為參數傳入。


拖動條(SeekBar)

SeekBar.getProgress()獲取拖動條當前值

事件:setOnSeekBarChangeListener(),處理拖動條值變化事件,把SeekBar.OnSeekBarChangeListener實例作為參數傳入。


菜單(Menu):

重寫ActivityonCreatOptionMenu(Menu?menu)方法,該方法用于創建選項菜單,當用戶按下手機的"Menu"按鈕時就會顯示創建好的菜單,在onCreatOptionMenu(Menu?Menu)方法內部可以調用Menu.add()方法實現菜單的添加。

重寫ActivityonMenuItemSelected()方法,該方法用于處理菜單被選擇事件。


進度對話框(ProgressDialog)

創建并顯示一個進度對話框:ProgressDialog.show(ProgressDialogActivity.this,"請稍等""數據正在加載中...."true)

設置對話框的風格:setProgressStyle()

ProgressDialog.STYLE_SPINNER??旋轉進度條風格(為默認風格)

ProgressDialog.STYLE_HORIZONTAL?橫向進度條風格

(補充)

下面是各種常用控件的事件監聽的使用
①EditText(編輯框)的事件監聽---OnKeyListener
②RadioGroup、RadioButton(單選按鈕)的事件監聽---OnCheckedChangeListener
③CheckBox(多選按鈕)的事件監聽---OnCheckedChangeListener
④Spinner(下拉列表)的事件監聽---OnItemSelectedListener
⑤Menu(菜單)的事件處理---onMenuItemSelected
⑥Dialog(對話框)的事件監聽---DialogInterface.OnClickListener()
http://www.iteye.com/topic/1060815

17.請介紹下Android中常用的五種布局

Android布局是應用界面開發的重要一環,在Android中,共有五種布局方式,分別是:FrameLayout(幀布局),LinearLayout?(線性布局),

AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。?

??1.FrameLayout????

? ? ? ?這個布局可以看成是墻腳堆東西,有一個四方的矩形的左上角墻腳,我們放了第一個東西,要再放一個,那就在放在原來放的位置的上面,這樣依次的放,會蓋住原來的東西。這個布局比較簡單,也只能放一點比較簡單的東西。????

? 2.LinearLayout????

? ? ? ?線性布局,這個東西,從外框上可以理解為一個div,他首先是一個一個從上往下羅列在屏幕上。每一個LinearLayout里面又可分為垂直布局?(android:orientation="vertical")和水平布局(android:orientation="horizontal"?)。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。????

LinearLayout中有一個重要的屬性?android:layout_weight="1",這個weight在垂直布局時,代表行距;水平的時候代表列寬;weight值越大就越大。????

? 3.AbsoluteLayout????

? ? ? ?絕對布局猶如div指定了absolute屬性,用X,Y坐標來指定元素的位置android:layout_x="20px"?android:layout_y="12px"?這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算比較麻煩。????

4.RelativeLayout????

????相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:????

????相對于某一個元素????

????android:layout_below="@id/aaa"?該元素在?idaaa的下面????

????android:layout_toLeftOf="@id/bbb"?該元素在?idbbb的左邊?????

?????相對于父元素的地方????

?????android:layout_alignParentLeft="true" ?與父元素左對齊????

?????android:layout_alignParentRight="true" 與父元素右對齊????

?????還可以指定邊距等,具體詳見API ? ?? ??

5.TableLayout????

?????表格布局類似Html里面的Table。每一個TableLayout里面有表格行TableRowTableRow里面可以具體定義每一個元素,設定他的對齊方式?android:gravity=""?。????

?????每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應用,做出美觀的界面。

18.如何啟用Service,如何停用Service?

Android中的服務和windows中的服務是類似的東西,服務一般沒有用戶操作界面,它運行于系統中不容易被用戶發覺,可以使用它開發如監控之類的程序。服務的開發比較簡單,如下:

第一步:繼承Service

public?class?SMSService?extends?Service?{

}

第二步:在AndroidManifest.xml文件中的<application>節點里對服務進行配置:

<service?android:name=".SMSService"?/>

?

服務不能自己運行,需要通過調用Context.startService()Context.bindService()方法啟動服務。這兩個方法都可以啟動Service,但是它們的使用場合有所不同。使用startService()方法啟用服務,調用者與服務之間沒有關連,即使調用者退出了,服務仍然運行。使用bindService()方法啟用服務,調用者與服務綁定在了一起,調用者一旦退出,服務也就終止,大有“不求同時生,必須同時死”的特點。

?

如果打算采用Context.startService()方法啟動服務,在服務未被創建時,系統會先調用服務的onCreate()方法,接著調用onStart()方法。如果調用startService()方法前服務已經被創建,多次調用startService()方法并不會導致多次創建服務,但會導致多次調用onStart()方法。采用startService()方法啟動的服務,只能調用Context.stopService()方法結束服務,服務結束時會調用onDestroy()方法。

?

如果打算采用Context.bindService()方法啟動服務,在服務未被創建時,系統會先調用服務的onCreate()方法,接著調用onBind()方法。這個時候調用者和服務綁定在一起,調用者退出了,系統就會先調用服務的onUnbind()方法,接著調用onDestroy()方法。如果調用bindService()方法前服務已經被綁定,多次調用bindService()方法并不會導致多次創建服務及綁定(也就是說onCreate()onBind()方法并不會被多次調用)。如果調用者希望與正在綁定的服務解除綁定,可以調用unbindService()方法,調用該方法也會導致系統調用服務的onUnbind()-->onDestroy()方法。

服務常用生命周期回調方法如下:

onCreate()?該方法在服務被創建時調用,該方法只會被調用一次,無論調用多少次startService()bindService()方法,服務也只被創建一次

onDestroy()該方法在服務被終止時調用

?

與采用Context.startService()方法啟動服務有關的生命周期方法

onStart()?只有采用Context.startService()方法啟動服務時才會回調該方法。該方法在服務開始運行時被調用。多次調用startService()方法盡管不會多次創建服務,但onStart()?方法會被多次調用

?

與采用Context.bindService()方法啟動服務有關的生命周期方法

onBind()只有采用Context.bindService()方法啟動服務時才會回調該方法。該方法在調用者與服務綁定時被調用,當調用者與服務已經綁定,多次調用Context.bindService()方法并不會導致該方法onBind()被多次調用。

onUnbind()只有采用Context.bindService()方法啟動服務時才會回調該方法。該方法在調用者與服務解除綁定時被調用

[java]?view plaincopy
  • 采用Context.?bindService()方法啟動服務的代碼如下:??
  • public?class?HelloActivity?extends?Activity?{??
  • ?????ServiceConnection?conn?=?new?ServiceConnection()?{??
  • ??????????????public?void?onServiceConnected(ComponentName?name,?IBinder?service)?{??
  • ???????????}??
  • ???????????public?void?onServiceDisconnected(ComponentName?name)?{??
  • ???????????}??
  • ?????};??
  • ????@Override???
  • public?void?onCreate(Bundle?savedInstanceState)?{???
  • ????????Button?button?=(Button)?this.findViewById(R.id.button);??
  • ????????button.setOnClickListener(new?View.OnClickListener(){??
  • ???????????????public?void?onClick(View?v)?{??
  • ??????????????????Intent?intent?=?new?Intent(HelloActivity.this,?SMSService.class);??
  • ??????????????????bindService(intent,?conn,?Context.BIND_AUTO_CREATE);??
  • ??????????????????//unbindService(conn);//解除綁定??
  • ? ? ? ?}});?????????
  • ????}??
  • }??
  • 19.ListView的優化方案


    1,如果自定義適配器,那么在getView方法中要考慮方法傳進來的參數contentView是否為null,如果為null就創建contentView并返回,如果不為null則直接使用。在這個方法中,盡可能少創建view
    2,給contentView設置tag(setTag()),傳入一個viewHolder對象,用于緩存要顯示的數據,可以達到圖像數據異步加載的效果
    3,如果listview需要顯示的item很多,就要考慮分頁加載。比如一共要顯示100條或者更多的時候,我們可以考慮先加載20條,等用戶拉到列表底部的時候,再去加載接下來的20條。

    20廣播接收者生命周期


    廣播接收器只有一個回調方法:
    void onReceive(Context curContext, Intent broadcastMsg)
    當廣播消息抵達接收器時,Android調用它的onReceive()方法并將包含消息的Intent對象傳遞給它。廣播接收器僅在它執行這個方法時處于活躍狀態。當onReceive()返回后,它即為失活狀態。
    擁有一個活躍狀態的廣播接收器的進程被保護起來而不會被殺死。但僅擁有失活狀態組件的進程則會在其它進程需要它所占有的內存的時候隨時被殺掉。
    這種方式引出了一個問題:如果響應一個廣播信息需要很長的一段時間,我們一般會將其納入一個衍生的線程中去完成,而不是在主線程內完成它,從而保證用戶交互過程的流暢。如果onReceive()衍生了一個線程并且返回,則包涵新線程在內的整個進程都被會判為失活狀態(除非進程內的其它應用程序組件仍處于活躍狀態),于是它就有可能被殺掉。這個問題的解決方法是令onReceive()啟動一個新服務,并用其完成任務,于是系統就會知道進程中仍然在處理著工作。

    21.設計模式和IoC(Inversion of Control?控制反轉)


    Android?框架魅力的源泉在于IoC,在開發Android?的過程中你會時刻感受到IoC?帶來

    的巨大方便,就拿Activity?來說,下面的函數是框架調用自動調用的:

    protected?void?onCreate(Bundle?savedInstanceState)?

    不是程序編寫者主動去調用,反而是用戶寫的代碼被框架調用,這也就反轉

    !當然IoC?本身的內涵遠遠不止這些,但是從這個例子中也可以窺視出IoC

    帶來的巨大好處。此類的例子在Android?隨處可見,例如說數據庫的管理類,

    例如說Android?SAX?Handler?的調用等。有時候,您甚至需要自己編寫簡

    單的IoC?實現,上面展示的多線程現在就是一個說明

    22.Android中的長度單位詳解

    現在這里介紹一下dp?spdp?也就是dip。這個和sp?基本類似。如果設置表示長度、高度等屬性時可以使用dp?sp。但如果設置字體,需要使用spdp?是與密度無關,sp?除了與密度無關外,還與scale?無關。如果屏幕密度為160,這時dp?sp?px?是一樣的。1dp=1sp=1px,但如果使用px?作單位,如果屏幕大小不變(假設還是3.2?寸),而屏幕密度變成了320。那么原來TextView?的寬度設成160px,在密度為320?3.2?寸屏幕里看要比在密度為160?3.2?寸屏幕上看短了一半。但如果設置成160dp?160sp?的話。系統會自動將width?屬性值設置成320px?的。也就是160?*?320?/?160。其中320?/?160?可稱為密度比例因子。

    也就是說,如果使用dp?sp,系統會根據屏幕密度的變化自動進行轉換。

    下面看一下其他單位的含義

    px:表示屏幕實際的象素。例如,320*480?的屏幕在橫向有320個象素,

    在縱向有480?個象素。

    in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54?厘米。例如,形容

    手機屏幕大小,經常說,3.2(英)寸、3.5(英)寸、4(英)寸就是指這個

    單位。這些尺寸是屏幕的對角線長度。如果手機的屏幕是3.2?英寸,表示手機

    的屏幕(可視區域)對角線長度是3.2*2.54?=?8.128?厘米。讀者可以去量

    一量自己的手機屏幕,看和實際的尺寸是否一致。 ?


    23.?4activity的啟動模式

    standard:?標準模式,一調用startActivity()方法就會產生一個新的實例。?

    singleTop:?如果已經有一個實例位于Activity棧的頂部時,就不產生新的實例,而只是調用Activity中的newInstance()方法。如果不位于棧頂,會產生一個新的實例。?

    singleTask:?會在一個新的task中產生這個實例,以后每次調用都會使用這個,不會去產生新的實例了。?

    singleInstance:?這個跟singleTask基本上是一樣,只有一個區別:在這個模式下的Activity實例所處的task中,只能有這個activity實例,不能有其他的實例。

    24.什么是ANR?如何避免它?


    ANRApplication?Not?Responding

    Android中,活動管理器和窗口管理器這兩個系統服務負責監視應用程序的響應。當出現下列情況時,Android就會顯示ANR對話框了:?

      用戶對應用程序的操作(輸入事件,按鍵、觸摸屏事件)5秒內無響應

      廣播接受器(BroadcastReceiver)10秒內仍未執行完畢?

      Android應用程序完全運行在一個獨立的線程中(例如main)。這就意味著,任何在主線程中運行的,需要消耗大量時間的操作都會引發ANR。因為此時,你的應用程序已經沒有機會去響應輸入事件和意向廣播(Intent?broadcast)。?

    避免方法:Activity應該在它的關鍵生命周期方法(如 onCreate()和onResume())里盡可能少的去做創建操作,

    潛在的耗時操作。例如網絡或數據庫操作,或者高耗時的計算如改變位圖尺寸,應該在子線程里(或者異步方式)來完成。

    主線程應該為子線程提供一個Handler,以便完成時能夠提交給主線程。

    25.Android?Intent的使用


    在一個Android應用中,主要是由一些組件組成,(Activity,Service,ContentProvider,etc.)在這些組件之間的通訊中,由Intent協助完成。

    正如網上一些人解析所說,Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根據此Intent的描述,負責找到對應的組件,將?Intent傳遞給調用的組件,并完成組件的調用。Intent在這里起著實現調用者與被調用者之間的解耦作用。
    Intent傳遞過程中,要找到目標消費者(另一個Activity,IntentReceiver或Service),也就是Intent的響應者,有兩種方法來匹配:
    1,顯示匹配(Explicit):?

    [java]?view plaincopy
  • public?TestB?extents?Activity??
  • {??
  • ?.........??
  • };??
  • ?public?class?Test?extends?Activity??
  • {??
  • ?????......??
  • ?????public?void?switchActivity()??
  • ?????{??
  • ????????????Intent?i?=?new?Intent(Test.this,?TestB.class);??
  • ????????????this.startActivity(i);??
  • ?????}??
  • }??


  • 代碼簡潔明了,執行了switchActivity()函數,就會馬上跳轉到名為TestB的Activity中。?

    2,隱式匹配(Implicit):
    ???
    ??隱式匹配,首先要匹配Intent的幾項值:Action,?Category,?Data/Type,Component
    如果填寫了Componet就是上例中的Test.class)這就形成了顯示匹配。所以此部分只講前幾種匹配。匹配規則為最大匹配規則,

    1,如果你填寫了Action,如果有一個程序的Manifest.xml中的某一個Activity的IntentFilter段中定義了包含了相同的Action那么這個Intent就與這個目標Action匹配,如果這個Filter段中沒有定義Type,Category,那么這個Activity就匹配了。但是如果手機中有兩個以上的程序匹配,那么就會彈出一個對話可框來提示說明。
    Action的值在Android中有很多預定義,如果你想直接轉到你自己定義的Intent接收者,你可以在接收者的IntentFilter中加入一個自定義的Action值(同時要設定Category值為"android.intent.category.DEFAULT"),在你的Intent中設定該值為Intent的Action,就直接能跳轉到你自己的Intent接收者中。因為這個Action在系統中是唯一的。
    2,data/type,你可以用Uri來做為data,比如Uri?uri?=?Uri.parse(http://www.google.com?);
    Intent?i?=?new?Intent(Intent.ACTION_VIEW,uri);手機的Intent分發過程中,會根據http://www.google.com?的scheme判斷出數據類型type
    手機的Brower則能匹配它,在Brower的Manifest.xml中的IntenFilter中首先有ACTION_VIEW?Action,也能處理http:的type,

    3,至于分類Category,一般不要去在Intent中設置它,如果你寫Intent的接收者,就在Manifest.xml的Activity的IntentFilter中包含android.category.DEFAULT,這樣所有不設置Category(Intent.addCategory(String?c);)的Intent都會與這個Category匹配。

    4,extras(附加信息),是其它所有附加信息的集合。使用extras可以為組件提供擴展信息,比如,如果要執行“發送電子郵件”這個動作,可以將電子郵件的標題、正文等保存在extras里,傳給電子郵件發送組件。
    ?

    26.如果后臺的Activity由于某原因被系統回收了,如何在被系統回收之前保存當前狀態?

    當你的程序中某一個Activity?A?在運行時中,主動或被動地運行另一個新的Activity?B?
    這個時候A會執行

    Java代碼

    public?void?onSaveInstanceState(Bundle?outState)?{???

    ? ? ? super.onSaveInstanceState(outState);????

    ? ? ? outState.putLong("id",?1234567890);

    }??

    ?

    B?完成以后又會來找A,?這個時候就有兩種情況,一種是A被回收,一種是沒有被回收,被回
    收的A就要重新調用onCreate()方法,
    不同于直接啟動的是這回onCreate()里是帶上參數savedInstanceState,沒被收回的就還是onResume就好了。

    savedInstanceState是一個Bundle對象,你基本上可以把他理解為系統幫你維護的一個Map對象。在onCreate()里你可能會?用到它,如果正常啟動onCreate就不會有它,所以用的時候要判斷一下是否為空。

    Java代碼

    if(savedInstanceState?!=?null){??
    ?????long?id?=?savedInstanceState.getLong("id");??
    }??

    就像官方的Notepad教程?里的情況,你正在編輯某一個note,突然被中斷,那么就把這個note的id記住,再起來的時候就可以根據這個id去把那個note取出來,程序就完整?一些。這也是看你的應用需不需要保存什么,比如你的界面就是讀取一個列表,那就不需要特殊記住什么,哦,?沒準你需要記住滾動條的位置...


    27.如何退出Activity


    對于單一Activity的應用來說,退出很簡單,直接finish()即可。當然,也可以用killProcess()System.exit()這樣的方法。現提供幾個方法,供參考:
    1、拋異常強制退出:該方法通過拋異常,使程序Force?Close。驗證可以,但是,需要解決的問題是,如何使程序結束掉,而不彈出Force?Close的窗口。
    2、記錄打開的Activity:每打開一個Activity,就記錄下來。在需要退出時,關閉每一個Activity即可。
    3、發送特定廣播:在需要結束應用時,發送一個特定的廣播,每個Activity收到廣播后,關閉即可。
    4、遞歸退出在打開新的Activity時使用startActivityForResult,然后自己加標志,在onActivityResult中處理,遞歸關閉。除了第一個,都是想辦法把每一個Activity都結束掉,間接達到目的。但是這樣做同樣不完美。你會發現,如果自己的應用程序對每一個Activity都設置了nosensor,在兩個Activity結束的間隙,sensor可能有效了。但至少,我們的目的達到了,而且沒有影響用戶使用。為了編程方便,最好定義一個Activity基類,處理這些共通問題

    28.請解釋下在單線程模型中MessageHandlerMessage?QueueLooper之間的關系。


    答:簡單的說,Handler獲取當前線程中的looper對象,looper用來從存放Message的MessageQueue中取出Message,再有Handler進行Message的分發和處理.

    Message Queue(消息隊列):用來存放通過Handler發布的消息,通常附屬于某一個創建它的線程,可以通過Looper.myQueue()得到當前線程的消息隊列

    Handler:可以發布或者處理一個消息或者操作一個Runnable,通過Handler發布消息,消息將只會發送到與它關聯的消息隊列,然也只能處理該消息隊列中的消息

    Looper:是Handler和消息隊列之間通訊橋梁,程序組件首先通過Handler把消息傳遞給Looper,Looper把消息放入隊列。Looper也把消息隊列里的消息廣播給所有的

    Handler:Handler接受到消息后調用handleMessage進行處理

    Message:消息的類型,在Handler類中的handleMessage方法中得到單個的消息進行處理

    在單線程模型下,為了線程通信問題,Android設計了一個Message Queue(消息隊列), 線程間可以通過該Message Queue并結合Handler和Looper組件進行信息交換。下面將對它們進行分別介紹:

    1. Message

    ????Message消息,理解為線程間交流的信息,處理數據后臺線程需要更新UI,則發送Message內含一些數據給UI線程。

    2. Handler

    ????Handler處理者,是Message的主要處理者,負責Message的發送,Message內容的執行處理。后臺線程就是通過傳進來的 Handler對象引用來sendMessage(Message)。而使用Handler,需要implement 該類的 handleMessage(Message)方法,它是處理這些Message的操作內容,例如Update UI。通常需要子類化Handler來實現handleMessage方法。

    3. Message Queue

    ????Message Queue消息隊列,用來存放通過Handler發布的消息,按照先進先出執行

    ??? 每個message queue都會有一個對應的Handler。Handler會向messagequeue通過兩種方法發送消息:sendMessage或post。這兩種消息都會插在message queue隊尾并按先進先出執行。但通過這兩種方法發送的消息執行的方式略有不同:通過sendMessage發送的是一個message對象,會被 Handler的handleMessage()函數處理;而通過post方法發送的是一個runnable對象,則會自己執行。

    4. Looper

    ????Looper是每條線程里的Message Queue的管家。Android沒有Global的MessageQueue,而Android會自動替主線程(UI線程)建立Message Queue,但在子線程里并沒有建立Message Queue。所以調用Looper.getMainLooper()得到的主線程的Looper不為NULL,但調用Looper.myLooper()得到當前線程的Looper就有可能為NULL。對于子線程使用Looper,API Doc提供了正確的使用方法:這個Message機制的大概流程:

    ??? 1. 在Looper.loop()方法運行開始后,循環地按照接收順序取出Message Queue里面的非NULL的Message。

    ??? 2. 一開始Message Queue里面的Message都是NULL的。當Handler.sendMessage(Message)到Message Queue,該函數里面設置了那個Message對象的target屬性是當前的Handler對象。隨后Looper取出了那個Message,則調用 該Message的target指向的Hander的dispatchMessage函數對Message進行處理。在dispatchMessage方法里,如何處理Message則由用戶指定,三個判斷,優先級從高到低:

    ??? 1) Message里面的Callback,一個實現了Runnable接口的對象,其中run函數做處理工作;

    ??? 2) Handler里面的mCallback指向的一個實現了Callback接口的對象,由其handleMessage進行處理;

    ??? 3) 處理消息Handler對象對應的類繼承并實現了其中handleMessage函數,通過這個實現的handleMessage函數處理消息。

    ??? 由此可見,我們實現的handleMessage方法是優先級最低的!

    ??? 3. Handler處理完該Message (updateUI) 后,Looper則設置該Message為NULL,以便回收!

    ??? 在網上有很多文章講述主線程和其他子線程如何交互,傳送信息,最終誰來執行處理信息之類的,個人理解是最簡單的方法——判斷Handler對象里面的Looper對象是屬于哪條線程的,則由該線程來執行

    ??? 1. 當Handler對象的構造函數的參數為空,則為當前所在線程的Looper;

    ? ? 2. Looper.getMainLooper()得到的是主線程的Looper對象,Looper.myLooper()得到的是當前線程的Looper對象。


    29.你如何評價Android系統?優缺點。


    答:Android平臺手機 5大優勢:

    一、開放性

    在優勢方面,Android平臺首先就是其開發性,開發的平臺允許任何移動終端廠商加入到Android聯盟中來顯著的開放性可以使其擁有更多的開發者,隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。開放性對于Android的發展而言,有利于積累人氣,這里的人氣包括消費者和廠商,而對于消費者來講,隨大的受益正是豐富的軟件資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

    二、掙脫運營商的束縛

    在過去很長的一段時間,特別是在歐美地區,手機應用往往受到運營商制約,使用什么功能接入什么網絡,幾乎都受到運營商的控制。從去年iPhone 上市 ,用戶可以更加方便地連接網絡,運營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動網絡的逐步過渡和提升,手機隨意接入網絡已不是運營商口中的笑談,當你可以通過手機IM軟件方便地進行即時聊天時,再回想不久前天價的彩信和圖鈴下載業務,是不是像噩夢一樣?互聯網巨頭Google推動的Android終端天生就有網絡特色,將讓用戶離互聯網更近。

    三、豐富的硬件選擇

    這一點還是與Android平臺的開放性相關,由于Android的開放性,眾多的廠商會推出千奇百怪,功能特色各具的多種產品。功能上的差異和特色,卻不會影響到數據同步、甚至軟件的兼容,好比你從諾基亞 Symbian風格手機 一下改用蘋果 iPhone ,同時還可將Symbian中優秀的軟件帶到iPhone上使用、聯系人等資料更是可以方便地轉移,是不是非常方便呢?

    四、不受任何限制的開發商

    Android平臺提供給第三方開發商一個十分寬泛、自由的環境,不會受到各種條條框框的阻擾,可想而知,會有多少新穎別致的軟件會誕生。但也有其兩面性,血腥、暴力、情色方面的程序和游戲如可控制正是留給Android難題之一。

    五、無縫結合的Google應用

    如今叱詫互聯網的Google已經走過10年度歷史,從搜索巨人到全面的互聯網滲透,Google服務如地圖、郵件、搜索等已經成為連接用戶和互聯網的重要紐帶,而Android平臺手機將無縫結合這些優秀的Google服務

    再說Android的5大不足:

    一、安全和隱私

    由于手機 與互聯網的緊密聯系,個人隱私很難得到保守。除了上網過程中經意或不經意留下的個人足跡Google這個巨人也時時站在你的身后,洞穿一切,因此,互聯網的深入將會帶來新一輪的隱私危機。

    二、首先開賣Android手機的不是最大運營商

    眾所周知,T-Mobile在23日,于美國紐約發布 了Android首款手機G1。但是在北美市場,最大的兩家運營商乃AT&T和Verizon,而目前所知取得Android手機銷售權的僅有 T-Mobile和Sprint,其中T-Mobile的3G網絡相對于其他三家也要遜色不少,因此,用戶可以買賬購買G1,能否體驗到最佳的3G網絡服務則要另當別論了!

    三、運營商仍然能夠影響到Android手機

    國內市場,不少用戶對購得移動定制機不滿,感覺所購的手機被人涂畫了廣告一般。這樣的情況在國外市場同樣出現。Android手機的另一發售運營商Sprint就將在其機型中內置其手機商店程序。

    四、同類機型用戶減少

    在不少手機論壇都會有針對某一型號的子論壇,對一款手機的使用心得交流,并分享軟件資源。而對于Android平臺手機,由于廠商豐富,產品類型多樣,這樣使用同一款機型的用戶越來越少,缺少統一機型的程序強化。舉個稍顯不當的例子,現在山寨機泛濫,品種各異,就很少有專門針對某個型號山寨機的討論和群組,除了哪些功能異常搶眼、頗受追捧的機型以外

    五、過分依賴開發商缺少標準配置

    在使用PC端的Windows Xp系統的時候,都會內置微軟Windows Media Player這樣一個播放器程序,用戶可以選擇更多樣的播放器,如Realplay或暴風影音等。但入手開始使用默認的程序同樣可以應付多樣的需要。在Android平臺中,由于其開放性,軟件更多依賴第三方廠商,比如Android系統的SDK中就沒有內置音樂 播放器,全部依賴第三方開發,缺少了產品的統一性

    30.談談android數據存儲方式。

    Android提供了5種方式存儲數據:
    1)使用SharedPreferences存儲數據;它是Android提供的用來存儲一些簡單配置信息的一種機制,采用了XML格式將數據存儲到設備中。只能在同一個包內使用,不能在不同的包之間使用。
    2)文件存儲數據;文件存儲方式是一種較常用的方法,在Android中讀取/寫入文件的方法,與Java中實現I/O的程序是完全一樣的,提供了openFileInput()openFileOutput()方法來讀取設備上的文件。
    3SQLite數據庫存儲數據;SQLiteAndroid所帶的一個標準的數據庫,它支持SQL語句,它是一個輕量級的嵌入式數據庫。
    4)使用ContentProvider存儲數據;主要用于應用程序之間進行數據交換,從而能夠讓其他的應用保存或讀取此Content?Provider的各種數據類型。
    5)網絡存儲數據;通過網絡上提供給我們的存儲空間來上傳(存儲)和下載(獲取)我們存儲在網絡空間中的數據信息。

    31.?AndroidActivity,?Intent,?Content?Provider,?Service各有什么區別。

    Activity:?活動,是最基本的android應用程序組件。一個活動就是一個用戶可以操作的可視化用戶界面,每一個活動都被實現為一個獨立的類,并且從活動基類繼承而來。
    Intent:?意圖,描述應用想干什么。最重要的部分是動作和動作對應的數據。
    Content?Provider:內容提供器,android應用程序能夠將它們的數據保存到文件、SQLite數據庫中,甚至是任何有效的設備中。當你想將你的應用數據和其他應用共享時,內容提供器就可以發揮作用了。
    Service:服務,具有一段較長生命周期且沒有用戶界面的程序組件。

    32.View,?surfaceView,?GLSurfaceView有什么區別。

    view是最基礎的,必須在UI主線程內更新畫面,速度較慢。
    SurfaceView?view的子類,類似使用雙緩機制,在新的線程中更新畫面所以刷新界面速度比view
    GLSurfaceView?SurfaceView的子類,opengl?專用的

    33.Manifest.xml文件中主要包括哪些信息?

    manifest:根節點,描述了package中所有的內容。
    uses-permission:請求你的package正常運作所需賦予的安全許可。
    permission:?聲明了安全許可來限制哪些程序能你package中的組件和功能。
    instrumentation:聲明了用來測試此package或其他package指令組件的代碼。
    application:包含packageapplication級別組件聲明的根節點。
    activityActivity是用來與用戶交互的主要工具。
    receiverIntentReceiver能使的application獲得數據的改變或者發生的操作,即使它當前不在運行。
    serviceService是能在后臺運行任意時間的組件。
    providerContentProvider是用來管理持久化數據并發布給其他應用程序使用的組件。

    34.根據自己的理解描述下Android數字簽名。

    (1)所有的應用程序都必須有數字證書,Android系統不會安裝一個沒有數字證書的應用程序
    (2)Android程序包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證
    (3)如果要正式發布一個Android程序,必須使用一個合適的私鑰生成的數字證書來給程序簽名,而不能使用adt插件或者ant工具生成的調試證書來發布。
    (4)數字證書都是有有效期的,Android只是在應用程序安裝的時候才會檢查證書的有效期。如果程序已經安裝在系統中,即使證書過期也不會影響程序的正常功能。

    35.?AIDL的全稱是什么?如何工作?能處理哪些類型的數據?

    AIDL全稱Android?Interface?Definition?LanguageAndroid接口描述語言)是一種借口描述語言;?編譯器可以通過aidl文件生成一段代碼,通過預先定義的接口達到兩個進程內部通信進程跨界對象訪問的目的.AIDLIPC的機制和COMCORBA類似,?是基于接口的,但它是輕量級的。它使用代理類在客戶端和實現層間傳遞值.?如果要使用AIDL,?需要完成2件事情:?1.?引入AIDL的相關類.;?2.?調用aidl產生的class.理論上,?參數可以傳遞基本數據類型和String,?還有就是Bundle的派生類,?不過在Eclipse,目前的ADT不支持Bundle做為參數,
    具體實現步驟如下:

    1、創建AIDL文件,?在這個文件里面定義接口,?該接口定義了可供客戶端訪問的方法和屬性。

    2、編譯AIDL文件,?Ant的話,?可能需要手動,?使用Eclipse?plugin的話,可以根據adil文件自動生產java文件并編譯,?不需要人為介入.

    3、在Java文件中,?實現AIDL中定義的接口.?編譯器會根據AIDL接口,?產生一個JAVA接口。這個接口有一個名為Stub的內部抽象類,它繼承擴展了接口并實現了遠程調用需要的幾個方法。接下來就需要自己去實現自定義的幾個接口了.
    4、向客戶端提供接口ITaskBinder,?如果寫的是service,擴展該Service并重載onBind?()方法來返回一個實現上述接口的類的實例。
    5、在服務器端回調客戶端的函數.?前提是當客戶端獲取的IBinder接口的時候,要去注冊回調函數,?只有這樣,?服務器端才知道該調用那些函數

    AIDL語法很簡單,可以用來聲明一個帶一個或多個方法的接口,也可以傳遞參數和返回值。?由于遠程調用的需要,?這些參數和返回值并不是任何類型.下面是些AIDL支持的數據類型:

    1.?不需要import聲明的簡單Java編程語言類型(int,boolean)

    2.?String,?CharSequence不需要特殊聲明

    3.?List,?MapParcelables類型,?這些類型內所包含的數據成員也只能是簡單數據類型,?String等其他比支持的類型.

    (另外:?我沒嘗試Parcelables,?Eclipse+ADT下編譯不過,?或許以后會有所支持).

    實現接口時有幾個原則:

    .拋出的異常不要返回給調用者.?跨進程拋異常處理是不可取的.

    .IPC調用是同步的。如果你知道一個IPC服務需要超過幾毫秒的時間才能完成地話,你應該避免在Activity的主線程中調用。也就是IPC調用會掛起應用程序導致界面失去響應.?這種情況應該考慮單起一個線程來處理.

    .不能在AIDL接口中聲明靜態屬性。

    IPC的調用步驟:

    1.?聲明一個接口類型的變量,該接口類型在.aidl文件中定義。

    2.?實現ServiceConnection

    3.?調用ApplicationContext.bindService(),并在ServiceConnection實現中進行傳遞.

    4.?ServiceConnection.onServiceConnected()實現中,你會接收一個IBinder實例(被調用的Service).?調用

    YourInterfaceName.Stub.asInterface((IBinder)service)將參數轉換為YourInterface類型。

    5.?調用接口中定義的方法。你總要檢測到DeadObjectException異常,該異常在連接斷開時被拋出。它只會被遠程方法拋出。

    6.?斷開連接,調用接口實例中的ApplicationContext.unbindService()
    參考:http://buaadallas.blog.51cto.com/399160/372090

    36.android:gravityandroid:layout_gravity的區別

    LinearLayout有兩個非常相似的屬性:android:gravityandroid:layout_gravity。他們的區別在?于:android:gravity用于設置View組件的對齊方式,而android:layout_gravity用于設置Container組件的?對齊方式。

    舉個例子,我們可以通過設置android:gravity="center"來讓EditText中的文字在EditText組件中居中顯示;同?時我們設置EditTextandroid:layout_gravity="right"來讓EditText組件在LinearLayout中居右 顯示。來實踐以下:

    正如我們所看到的,在EditText中,其中的文字已經居中顯示了,而EditText組件自己也對齊到了LinearLayout的右側。

    [html]?view plaincopy
  • <LinearLayout???
  • ????xmlns:android="http://schemas.android.com/apk/res/android"???
  • ????android:orientation="vertical"???
  • ????android:layout_width="fill_parent"???
  • ????android:layout_height="fill_parent">???
  • ????<EditText???
  • ????????android:layout_width="wrap_content"???
  • ????????android:gravity="center"???
  • ????????android:layout_height="wrap_content"???
  • ????????android:text="one"???
  • ????????android:layout_gravity="right"/>???
  • </LinearLayout>

  • 38.?注冊廣播接收者兩種方式的區別,及優缺點


    答:首先寫一個類要繼承BroadcastReceiver

    第一種:在清單文件中聲明,添加

    <receiveandroid:name=".IncomingSMSReceiver " >

    <intent-filter>

    ?? <actionandroid:name="android.provider.Telephony.SMS_RECEIVED")

    <intent-filter>

    <receiver>

    第二種使用代碼進行注冊如:

    IntentFilterfilter =? newIntentFilter("android.provider.Telephony.SMS_RECEIVED");

    IncomingSMSReceiverreceiver = new IncomgSMSReceiver();

    registerReceiver(receiver.filter);

    兩種注冊類型的區別是:


    1)第一種是常駐型(靜態注冊),也就是說當應用程序關閉后,如果有信息廣播來,程序也會被系統調用自動運行。

    2)第二種不是常駐型廣播(動態注冊),也就是說廣播跟隨程序的生命周期。


    注冊的方法有兩種,一種是靜態注冊,一種是動態注冊。

    動態注冊優點:在 Android 的廣播機制中,動態注冊的優先級是要高于靜態注冊優先級的,因此在必要的情況下,我們是需要動態注冊廣播接收器的。

    靜態注冊優點:動態注冊廣播接收器還有一個特點,就是當用來注冊的 Activity 關掉后,廣播也就失效了。同時反映了靜態注冊的一個優勢,就是無需擔憂廣播接收器是否被關閉,只要設備是開啟狀態,廣播接收器就是打開著的。

    39.Dalvik基于JVM的改進

    1.幾個class變為一個dexconstant?pool,省內存

    2.Zygotecopy-on-write?shared,省內存,省cpu,省電

    3.基于寄存器的bytecode,省指令,省cpu,省電

    4.Trace-based?JIT,cpu,省電,省內存

    40.android中有哪幾種解析xml的類,官方推薦哪種?以及它們的原理和區別.

    ??DOM解析

    ????優點:

    1.XML樹在內存中完整存儲,因此可以直接修改其數據和結構.?

    2.可以通過該解析器隨時訪問XML樹中的任何一個節點.?

    3.DOM解析器的API在使用上也相對比較簡單.

    缺點:如果XML文檔體積比較大時,將文檔讀入內存是非常消耗系統資源的.

    使用場景:DOM?是用與平臺和語言無關的方式表示?XML?文檔的官方?W3C?標準.DOM?是以層次結構組織的節點的集合.這個層次結構允許開發人員在樹中尋找特定信息.分析該結構通常需要加載整個文檔和構造層次結構,然后才能進行任何工作.DOM是基于對象層次結構的.

    ??SAX解析

    優點:

    SAX?對內存的要求比較低,因為它讓開發人員自己來決定所要處理的標簽.特別是當開發人員只需要處理文檔中所包含的部分數據時,SAX?這種擴展能力得到了更好的體現.

    缺點:

    用SAX方式進行XML解析時,需要順序執行,所以很難訪問到同一文檔中的不同數據.此外,在基于該方式的解析編碼過程也相對復雜.

    使用場景:

    對于含有數據量十分巨大,而又不用對文檔的所有數據進行遍歷或者分析的時候,使用該方法十分有效.該方法不用將整個文檔讀入內存,而只需讀取到程序所需的文檔標簽處即可.

    ??Xmlpull解析

    android?SDK提供了xmlpull?api,xmlpull和sax類似,是基于流(stream)操作文件,然后根據節點事件回調開發者編寫的處理程序.因為是基于流的處理,因此xmlpull和sax都比較節約內存資源,不會象dom那樣要把所有節點以對橡樹的形式展現在內存中.xmlpull比sax更簡明,而且不需要掃描完整個流.


    41.Android系統中GC什么情況下會出現內存泄露呢?

    出現情況:
    1.?數據庫的cursor沒有關閉
    2.構造adapter時,沒有使用緩存contentview
    ???衍生listview的優化問題-----減少創建view的對象,充分使用contentview,可以使用一靜態類來優化處理getview的過程
    3.Bitmap對象不使用時采用recycle()釋放內存
    4.activity中的對象的生命周期大于activity
    調試方法:?DDMS==>?HEAPSZIE==>dataobject==>[Total?Size]

    42.談談對Android?NDK的理解

    NDK全稱:Native Development Kit。   1、NDK是一系列工具的集合。   * NDK提供了一系列的工具,幫助開發者快速開發C(或C++)的動態庫,并能自動將so和java應用一起打包成apk。這些工具對開發者的幫助是巨大的。   * NDK集成了 交叉編譯器 ,并提供了相應的mk文件隔離CPU、平臺、ABI等差異,開發人員只需要簡單修改mk文件(指出“哪些文件需要編譯”、“編譯特性要求”等),就可以創建出so。   * NDK可以自動地將so和Java應用一起打包,極大地減輕了開發人員的打包工作。   2、NDK提供了一份穩定、功能有限的API頭文件聲明。   Google明確聲明該API是穩定的,在后續所有版本中都穩定支持當前發布的API。從該版本的NDK中看出,這些API支持的功能非常有限,包含有:C標準庫(libc)、標準數學庫(libm)、壓縮庫(libz)、Log庫(liblog)。



    1,雙緩沖技術原理以及優缺點:

    創建一幅后臺圖像,將每一幀畫入圖像,然后調用drawImage()方法將整個后臺圖像一次畫到屏幕上去。

    優點:雙緩沖技術的優點在于大部分繪制是離屏的。

    ? ? ? ? ? ? 將離屏圖像一次繪至屏幕上,比直接在屏幕上繪制要有效得多。

    ? ? ? ? ? ? 雙緩沖技術可以使動畫平滑。

    缺點:要分配一個后臺圖像的緩沖,如果圖像相當大,這將占用很大一塊內存。

    2,AsyncTask簡介

    在開發Android移動客戶端的時候往往要使用多線程來進行操作,我們通常會將耗時的操作放在單獨的線程執行,避免其占用主線程而給用戶帶來不好的用戶體驗。但是在子線程中無法去操作主線程(UI 線程),在子線程中操作UI線程會出現錯誤。因此android提供了一個類Handler來在子線程中來更新UI線程,用發消息的機制更新UI界面,呈現給用戶。這樣就解決了子線程更新UI的問題。但是費時的任務操作總會啟動一些匿名的子線程,太多的子線程給系統帶來巨大的負擔,隨之帶來一些性能問題。因此android提供了一個工具類AsyncTask,顧名思義異步執行任務。這個AsyncTask生來就是處理一些后臺的比較耗時的任務,給用戶帶來良好用戶體驗的,從編程的語法上顯得優雅了許多,不再需要子線程和Handler就可以完成異步操作并且刷新用戶界面。

    3,Socket通信編程

    客戶端編程步驟:


    1、?創建客戶端套接字(指定服務器端IP地址與端口號)


    2、?連接(Android?創建Socket時會自動連接)


    3、?與服務器端進行通信


    4、?關閉套接字


    服務器端:

    1.創建一個ServerSocket,用于監聽客戶端Socket的連接請求

    2.采用循環不斷接受來自客戶端的請求

    3.每當接受到客戶端Socket的請求,服務器端也對應產生一個Socket




    總結

    以上是生活随笔為你收集整理的android面试题总结加强的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品黑丝在线观看 | 日日夜夜人人精品 | 五月综合在线观看 | www.少妇| 久久精品国产亚洲精品 | 激情综合色播五月 | 欧美a免费 | 久久精品一区二区三区中文字幕 | 天天爱av导航 | 91超碰免费在线 | 久久久精品小视频 | aa一级片 | 天天干com| 成人avav| 亚洲影视九九影院在线观看 | 久久69精品 | 亚洲男男gaygayxxxgv | 夜夜摸夜夜爽 | 国产精品初高中精品久久 | 国产精品亚洲片夜色在线 | 伊人超碰在线 | 看片网站黄 | av在线免费在线观看 | 麻豆视频国产 | 免费观看性生交 | 九九导航 | 成人久久久久 | 黄污在线观看 | 伊人欧美 | www日韩在线 | 视频在线观看国产 | 三级av网 | 国产精品免费久久久久 | 九九九九免费视频 | 久久99久国产精品黄毛片入口 | 网站免费黄 | 欧美激情精品久久 | 久久新 | 成人在线视频在线观看 | av东方在线 | 亚洲视频1区2区 | 处女av在线 | 日韩在线观看第一页 | 一级a毛片高清视频 | 国产精品入口麻豆www | 亚洲中字幕 | 亚洲午夜av电影 | 色综合久久综合 | 91看片在线免费观看 | 亚洲春色综合另类校园电影 | 在线观看的a站 | 91视频中文字幕 | 国产精品久久久久影院日本 | 亚洲情婷婷 | 国产中文字幕视频在线观看 | 久久91网| 日韩资源在线播放 | 久久国产成人午夜av影院潦草 | 国产亚洲精品久 | 激情 婷婷 | 国产精品黄 | 国产呻吟在线 | 波多野结衣久久资源 | 国产视频69 | 免费黄色av片 | 男女男视频 | 成人影视片 | 中文字幕a∨在线乱码免费看 | 国产麻豆视频免费观看 | 婷婷精品国产一区二区三区日韩 | 天天综合网 天天 | 成人资源在线播放 | 久久精品最新 | 日狠狠 | 干干操操| 欧美久久久久久久 | 日韩av一区二区在线播放 | 狠狠操.com | 天天天色综合 | 日韩久久精品一区 | 波多野结衣亚洲一区二区 | 黄污网站在线观看 | 日韩视频1| 国产伦理一区 | 六月天色婷婷 | 91久久久国产精品 | 日韩一区二区三区免费视频 | 久久视频网 | 在线看成人片 | 中文字幕一区二区三区乱码不卡 | 国产精品欧美一区二区 | 免费在线观看av的网站 | 免费在线观看污网站 | 久久99爱视频 | 综合视频在线 | 天堂在线一区二区 | 91视频 - 88av | 精品视频免费在线 | 日韩v在线91成人自拍 | 国产成人在线观看 | 日本黄网站 | 免费精品国产 | 97精品国产97久久久久久粉红 | 99精品国产一区二区 | 国产黄网站在线观看 | 国产精品理论片在线播放 | 亚洲午夜小视频 | 91资源在线免费观看 | 欧美一级日韩三级 | 99精品视频中文字幕 | 亚洲国产精品激情在线观看 | 国产精品热视频 | 国产成人99久久亚洲综合精品 | 99精品国产在热久久 | 丁香综合网 | 久久夜色精品国产欧美一区麻豆 | 黄色精品网站 | 999国内精品永久免费视频 | 欧洲亚洲国产视频 | av看片网| 欧美一区二区三区免费看 | 日本护士三级少妇三级999 | 久久a级片 | 日韩av在线资源 | 伊人狠狠色 | 亚洲激情精品 | 婷婷激情综合网 | 91免费日韩| 911国产 | 2023天天干| 99精品视频免费全部在线 | 日韩欧美一区二区三区在线 | 亚洲精品一区二区在线观看 | 亚洲伊人网在线观看 | 亚洲精品一区二区久 | 国产a视频免费观看 | 国内免费久久久久久久久久久 | 亚洲视频电影在线 | 麻豆果冻剧传媒在线播放 | 91亚洲精品国偷拍自产在线观看 | 香蕉视频在线看 | 午夜精品久久久久久久久久 | 日韩精品不卡在线观看 | 久艹视频在线观看 | 在线国产激情视频 | 国产精品亚洲视频 | 中文字幕在线影院 | 久久久久久久免费观看 | 久久久久久久久久久久久国产精品 | av中文资源在线 | 欧美精品久久久久久久久久白贞 | 精品久久一区二区 | 亚洲精品在线观看免费 | 99久久99久久精品 | 美女网色| 91久久在线观看 | 99久久日韩精品免费热麻豆美女 | 日本一区二区免费在线观看 | 91网站在线视频 | 亚洲精品18p | 欧美天天射 | 97免费中文视频在线观看 | 伊人成人精品 | 波多野结衣在线中文字幕 | 国产99久久九九精品免费 | 18国产精品白浆在线观看免费 | 亚洲免费av观看 | 久久久国产精品视频 | 国产免费影院 | 中文字幕亚洲高清 | 最新中文字幕在线资源 | 国产精品热视频 | 激情综合国产 | 91精彩在线视频 | 国产视频一区在线免费观看 | 亚洲国产wwwccc36天堂 | 中文字幕第一页在线视频 | 99久热在线精品 | 日日干天天| 日韩一级黄色大片 | 天天视频亚洲 | 最新超碰| 天天操天天色天天 | 91九色自拍 | 国产婷婷视频在线 | 日韩欧美亚州 | 91精品无人成人www | 日韩精品欧美专区 | 婷婷六月丁香激情 | 中文字幕在线观看视频网站 | 久久人人97超碰国产公开结果 | 精壮的侍卫呻吟h | 欧美一级片在线 | 久久草在线精品 | 精品亚洲一区二区 | 麻豆91网站| 国产三级精品在线 | 一区二区三高清 | 久久美女免费视频 | 日日操日日 | 国产精品久久久久久久久久白浆 | 色婷在线 | 欧美精品一区二区蜜臀亚洲 | 久国产在线播放 | 国产精品成人一区二区三区吃奶 | 色片网站在线观看 | 亚洲欧美日韩国产 | 中文字幕国产亚洲 | 欧美性色19p| 国产精品99精品久久免费 | 国产视频精品视频 | 欧美a级成人淫片免费看 | 女人高潮特级毛片 | 欧美性久久久久久 | 婷婷亚洲激情 | 一区二区伦理电影 | 久久精品香蕉视频 | 亚洲伊人色 | www.人人草| 日韩免费av片 | 99人久久精品视频最新地址 | 国内成人av | 国产在线观看黄 | 在线一区二区三区 | 五月婷婷综合激情网 | 亚洲高清久久久 | 免费在线观看不卡av | 九九热在线免费观看 | 91精品区 | 曰韩精品 | 在线观看视频精品 | 五月婷婷六月丁香 | 婷婷丁香狠狠爱 | 日日夜夜狠狠干 | 国产日韩欧美在线影视 | 国产精品久久久久久久久久妇女 | 2022中文字幕在线观看 | 西西www4444大胆在线 | 91精品国产成 | 国产高清不卡在线 | v片在线看 | 精品国产电影一区 | 中文字幕国产一区二区 | 人人爽人人做 | 最新一区二区三区 | 成人免费在线视频观看 | 久久99国产一区二区三区 | 在线免费观看一区二区三区 | 91视频 - 114av | 国产四虎在线 | 麻豆精品视频在线观看免费 | 亚洲影视九九影院在线观看 | 欧美性久久久久久 | 在线日韩中文字幕 | 国产亚洲精品久久久久久网站 | 久久久久久综合网天天 | 国产一级免费视频 | 欧美日韩精品在线观看视频 | 欧美另类性| 久久无码av一区二区三区电影网 | 在线电影中文字幕 | 天天综合色天天综合 | 正在播放一区 | 日韩一区二区三区高清免费看看 | 在线播放精品一区二区三区 | 91精品中文字幕 | 色a网| 亚洲精品999 | 国产精品黄 | 在线观看视频国产 | 特级西西444www大胆高清无视频 | 视频一区二区国产 | 国产精品a久久久久 | 国产99在线播放 | 天天碰天天操视频 | bbb搡bbb爽爽爽 | av在线免费播放网站 | 97视频在线看 | 欧美日韩一级久久久久久免费看 | 婷婷在线资源 | 在线只有精品 | 国产精品一区二区三区观看 | 久久99视频免费观看 | av三级av| 丝袜美女在线观看 | 看全黄大色黄大片 | 久久综合久久综合这里只有精品 | 久久人网 | 国产精品久久久久久久久久久免费看 | 麻豆一区二区三区视频 | 欧美国产一区二区 | 成人动态视频 | 狠狠色丁婷婷日日 | 婷婷成人综合 | 国产视频1区2区 | av免费在线网站 | 激情欧美网 | 久久久久久久电影 | 日本久久91| 精品国产一区二区三区久久久久久 | 亚洲黄色免费在线 | 五月天综合网 | 色婷婷av一区 | 人人干免费 | 四虎欧美| 免费看污片 | 在线观看一区二区视频 | 国产成人一区二区三区 | 国产中年夫妇高潮精品视频 | 国产精品久久网站 | 精品久久久久久久久久 | 日韩一级成人av | 国产美女视频免费观看的网站 | 五月婷婷丁香色 | 亚洲日韩精品欧美一区二区 | 91丨九色丨国产在线观看 | 2019天天干夜夜操 | 91丨九色丨勾搭 | 在线天堂中文在线资源网 | 日日夜夜精品视频天天综合网 | 麻豆一二三精选视频 | av官网在线 | 婷婷综合影院 | 久草在线在线精品观看 | 在线观看免费成人av | 伊人激情综合 | 亚州性色| 日韩免费在线观看视频 | 日韩免费三级 | 欧洲激情在线 | 国产精品视频一二三 | 婷婷丁香九月 | .国产精品成人自产拍在线观看6 | 粉嫩一二三区 | 综合中文字幕 | 亚洲伊人成综合网 | 欧美日韩一区三区 | www,黄视频 | 国产高清视频免费最新在线 | 在线观看黄污 | 91亚洲精品久久久蜜桃网站 | 国产一级电影在线 | 天天操天天弄 | 麻豆成人小视频 | 亚洲精品系列 | 粉嫩av一区二区三区四区在线观看 | 日韩最新av在线 | 国产精品九九久久久久久久 | 在线观看视频97 | 国产日韩高清在线 | 国产色在线观看 | 久久久国产精品视频 | 国产伦精品一区二区三区… | av电影在线免费观看 | 超碰97免费在线 | 欧美久久久久久久久久 | 免费国产一区二区视频 | 天海冀一区二区三区 | 久久国产精品系列 | av先锋影音少妇 | 亚洲天堂社区 | 国产黄a三级 | 色综合久久精品 | 美女福利视频一区二区 | 免费视频91蜜桃 | 日韩一区精品 | 亚洲无毛专区 | 色综合 久久精品 | 992tv成人免费看片 | 在线观看免费高清视频大全追剧 | 日韩免费一区二区在线观看 | 欧美激情第一区 | 一区二区精品久久 | 久久久精品免费看 | 精品视频免费在线 | 黄色毛片电影 | 成人在线免费观看视视频 | 在线a亚洲视频播放在线观看 | 人人澡人人舔 | 亚洲综合小说电影qvod | 9999在线观看 | 高清国产午夜精品久久久久久 | 成人免费一区二区三区在线观看 | 日韩有码在线播放 | 亚洲成色777777在线观看影院 | 日日夜夜干| 九九免费观看全部免费视频 | 国产一级视屏 | 久草资源在线观看 | 欧美一级视频在线观看 | 久久精品视频免费 | 欧日韩在线| 久久久精品福利视频 | 欧美色图亚洲图片 | 五月婷婷天堂 | 日本精品va在线观看 | 97视频播放 | 久久免费av电影 | 狠狠色丁香婷婷 | 黄色av一区| 91在线播放视频 | 亚洲精品成人 | 深夜免费福利视频 | 亚洲免费精品一区二区 | 成片视频免费观看 | 国产淫a| 一区二区三区国产欧美 | 久久免费福利 | 精品久久网 | 国产精品免费一区二区 | 丁香5月婷婷久久 | 欧美一区视频 | 欧美另类v | 久久精品国产亚洲 | 日韩欧美视频免费在线观看 | 人人澡人人添人人爽一区二区 | 欧美在线free | 91精品在线播放 | 国产午夜在线 | 国产精品欧美日韩在线观看 | 欧美在线18 | 日韩首页 | 91九色老 | 天天射成人 | 中文字幕高清视频 | www.久久久com | 亚洲精品美女在线观看播放 | 色五月成人 | 亚洲aⅴ在线 | 中文字幕资源站 | 最近中文字幕在线中文高清版 | 日韩精品欧美专区 | 国产 字幕 制服 中文 在线 | 人人插人人插 | 97精品国产91久久久久久久 | 日韩精品免费在线视频 | 欧美国产精品一区二区 | 欧美日韩视频观看 | 日韩精品视频在线免费观看 | 亚洲视频第一页 | www久| 久久开心激情 | 成年人在线免费看视频 | 91人人爽人人爽人人精88v | 国产第一福利 | 成人免费观看在线视频 | 国产精品第10页 | 免费看一级黄色大全 | 中文字幕免费高清 | 最近2019中文免费高清视频观看www99 | 欧美在线视频一区二区三区 | 国产男女免费完整视频 | 天天干天天草 | 国产黄色资源 | 不卡精品视频 | 欧洲视频一区 | 日本黄色黄网站 | 国产成人久久精品一区二区三区 | 免费日韩视 | 九草视频在线 | 又黄又爽又色无遮挡免费 | 国产三级久久久 | 欧洲高潮三级做爰 | 国产亚洲高清视频 | 91av蜜桃| 国产视频久久 | 高清国产一区 | 97免费在线观看 | 国产拍揄自揄精品视频麻豆 | 久久午夜视频 | 日韩精品专区 | 日韩av影片在线观看 | 国产第一页在线播放 | 欧美日本三级 | 欧美黄在线 | 二区视频在线 | av线上看| 亚洲午夜av久久乱码 | 亚洲女人天堂成人av在线 | 国产中文字幕国产 | 欧美一级免费高清 | 91香蕉国产 | 中文字幕影片免费在线观看 | 日本深夜福利视频 | av黄网站| 激情欧美日韩一区二区 | 久久精品看 | 国产视频97 | www.99热精品 | 在线观看黄污 | 欧美aaa视频 | 99久久精品久久久久久动态片 | 免费在线一区二区三区 | 日韩黄色中文字幕 | 欧美韩日精品 | 91视视频在线直接观看在线看网页在线看 | 国产免费大片 | 亚洲国产精品成人av | av丝袜在线 | 国产精品一区二区三区久久久 | 不卡的av在线 | 国产亚洲精品成人av久久ww | 国产色爽 | 久久免费片 | av福利超碰网站 | 狠狠久久综合 | 亚洲欧美观看 | 欧美福利视频 | 国产精品涩涩屋www在线观看 | 久久久亚洲影院 | 免费成人在线网站 | 涩涩网站在线观看 | 伊人天天综合 | 久久人人97超碰国产公开结果 | 国产在线观看不卡 | 在线观看视频99 | 国产精品二区三区 | 国产成人精品一区二区在线观看 | 日韩免费视频线观看 | 亚洲热久久 | 麻豆果冻剧传媒在线播放 | 五月天av在线| wwwwww色 | 日韩欧美综合视频 | 欧美日韩视频在线 | 亚洲男男gaygayxxxgv | 久久久久久久久久久久久久电影 | 国产亚洲视频系列 | 国产女人18毛片水真多18精品 | 久久国产a | 日韩av电影免费在线观看 | 精品99在线 | 亚洲日本韩国一区二区 | 超碰在线观看99 | 伊香蕉大综综综合久久啪 | av在线超碰| 人人插人人玩 | 国产一区成人在线 | 欧美视频国产视频 | 日韩va亚洲va欧美va久久 | 免费视频99 | 亚洲午夜av | 天天天操天天天干 | 91精品国产麻豆 | 国产成人一区二区在线观看 | 最近中文字幕高清字幕免费mv | 青青色影院 | 国产一级高清 | 日本黄色免费在线 | 精品1区2区| 精品一区二区av | 中文字幕在线视频一区二区三区 | 成人h动漫精品一区二 | 黄色大片入口 | 九九热视频在线播放 | 国产精品久久久av久久久 | 日本午夜在线亚洲.国产 | 91在线最新 | 午夜日b视频 | 国产a视频免费观看 | 99视频在线看 | 久久人人爽爽 | 97精品国产一二三产区 | 久久久久亚洲精品中文字幕 | 日韩久久久久久久 | 午夜久久久久 | 天天爱综合 | 在线 欧美 日韩 | 日韩丝袜 | av在线短片| 国产第一二区 | 亚洲国产中文字幕 | 国产精品久久影院 | 国产不卡免费视频 | 国产一区二区在线免费 | 婷婷色在线 | 亚洲精品字幕在线 | 蜜桃传媒一区二区 | 国产免费国产 | 啪啪小视频网站 | 欧美了一区在线观看 | 激情欧美一区二区三区免费看 | 成人影视免费看 | 激情视频一区二区 | 深爱婷婷久久综合 | 日韩视频在线播放 | 国产在线国偷精品产拍免费yy | 最近中文国产在线视频 | 久久久五月天 | 久久久久国产精品一区二区 | 97超碰在线久草超碰在线观看 | 最新中文在线视频 | 夜夜躁狠狠躁日日躁视频黑人 | 国产成人免费在线观看 | 国产免费观看久久 | 中文字幕永久在线 | 久久字幕网 | 国产精品初高中精品久久 | 久久久精品亚洲 | 成人av免费电影 | 在线视频一区观看 | 久久久久久久久久网站 | 国产中文字幕在线看 | 久久成人黄色 | 国产在线一区二区三区播放 | 国产精品女主播一区二区三区 | 麻豆一精品传二传媒短视频 | 三级av网| 免费av小说 | 国产精品久久二区 | www国产亚洲 | 国产91全国探花系列在线播放 | 免费福利在线播放 | 亚洲最新毛片 | 国产精品麻豆欧美日韩ww | 久久久久久国产精品久久 | 日韩91精品| 久久久久激情电影 | 91在线免费观看网站 | 国产精品久久久久aaaa九色 | 欧美日本高清视频 | 日韩免费观看一区二区三区 | 成年人视频免费在线 | 日韩 精品 一区 国产 麻豆 | 在线影院 国内精品 | 天天爽天天摸 | 97电院网手机版 | 欧美韩国日本在线观看 | 精品国产一区二区三区久久久久久 | 一级黄色片在线免费观看 | 中文字幕在线观看2018 | 免费成人av在线看 | 中文字幕在线视频网站 | 国产一二三四在线观看视频 | 日韩和的一区二在线 | 色国产在线 | 免费高清看电视网站 | 成人蜜桃 | 91九色视频在线 | 天天草天天爽 | 国产一级不卡视频 | 国产精品一区二区av日韩在线 | 日本性xxx| 黄色小视频在线观看免费 | 久青草视频在线观看 | 伊人永久在线 | 久久伊人精品天天 | 狠狠的操狠狠的干 | 最新av免费在线 | 久草在线视频在线观看 | 公开超碰在线 | 天天操夜夜做 | 特级片免费看 | 久久人人爽 | 色天天| 激情综合啪 | www.久草.com| 亚洲精品在线视频播放 | 免费a网站| 国产精品一区在线观看你懂的 | 66av99精品福利视频在线 | 久久精品1区 | 制服丝袜一区二区 | 国产精品99久久久久久久久久久久 | 久久天堂影院 | 在线观看精品黄av片免费 | 亚洲精品在线一区二区三区 | 最近免费中文字幕mv在线视频3 | 天天爽天天碰狠狠添 | 久久久91精品国产一区二区精品 | 色99视频| 日韩免费一区二区三区 | 国产一区影院 | 91热爆在线观看 | 日日夜日日干 | 欧美激情第一页xxx 午夜性福利 | 999在线视频 | 99精品视频在线播放观看 | 中文字幕欧美日韩va免费视频 | 欧美日韩国产精品久久 | 亚洲精品五月天 | 精品黄色片 | 成人av在线网 | 国产精品黑丝在线观看 | 日日夜夜噜噜噜 | 日韩大陆欧美高清视频区 | 九九视频免费在线观看 | 国产精品免费久久久久 | 日韩欧美综合视频 | 亚洲美女精品区人人人人 | 国产福利一区二区在线 | 精品视频资源站 | 成人av影视观看 | 久久av在线播放 | 中文字幕久久久精品 | 99久久精品免费看国产免费软件 | 丁香5月婷婷 | 麻豆 91 在线 | 黄污污网站 | 91久久久久久久一区二区 | 亚洲综合在线五月 | 欧美成人精品欧美一级乱黄 | 日韩动态视频 | 五月天天在线 | 中文有码在线 | 狠狠精品 | 国产一区网址 | 在线不卡视频 | 国产一级高清 | 成人av一区二区兰花在线播放 | 欧美亚洲一区二区在线 | 少妇视频一区 | 欧美久久综合 | 久久精品九色 | 日韩www在线 | 国产成人一二三 | 久久久99精品免费观看app | 国产精品11| 久久精品日产第一区二区三区乱码 | 天天操·夜夜操 | 欧美日韩视频在线观看一区二区 | 欧美色图亚洲图片 | 亚洲黄色免费在线 | 偷拍久久久 | 最近久乱中文字幕 | 九九九在线观看视频 | 免费看的黄色的网站 | 久久精品中文视频 | 五月婷婷激情综合网 | 在线日韩中文 | 91片黄在线观 | 亚洲九九九 | av一级一片 | 免费三级骚 | 亚洲一区二区视频在线 | 在线观看视频在线 | 丝袜美腿在线 | 亚洲 在线 | 国产精品2019 | 欧美91片 | 91私密保健 | 婷婷国产v亚洲v欧美久久 | 欧美福利精品 | 国产资源中文字幕 | 特级大胆西西4444www | 在线成人免费av | 成人av在线亚洲 | 日韩三区在线观看 | 国产精品尤物视频 | 在线观看亚洲国产精品 | 国产一区在线视频观看 | 在线视频欧美精品 | 国产91区 | 天堂av在线网站 | 成人一区在线观看 | 人人要人人澡人人爽人人dvd | www久久精品 | 五月色综合 | 99色在线观看视频 | 在线观看视频亚洲 | 91av手机在线 | 成人av影视观看 | 亚洲天堂网视频 | 天天综合视频在线观看 | 一级性av | 色综合色综合色综合 | 四虎永久网站 | 亚洲黄色影院 | 国产成人99久久亚洲综合精品 | 日韩有色 | 91免费黄视频 | 在线а√天堂中文官网 | 又爽又黄在线观看 | 丝袜+亚洲+另类+欧美+变态 | 色九九视频| 激情文学丁香 | 国产麻豆视频 | 婷婷射五月| 成人av在线亚洲 | 中文伊人 | 日韩av中文在线观看 | 亚洲综合在线观看视频 | 国产精品国产三级在线专区 | 国产成人精品亚洲精品 | 超碰av在线 | 国产精品2019| 日本女人的性生活视频 | 久久精品日产第一区二区三区乱码 | 91av影视| 日韩成人在线免费观看 | 日韩一区二区三区观看 | 超碰av在线 | 97在线视频免费观看 | 久久五月天色综合 | 99国产在线 | 91视频免费网址 | 少妇bbbb搡bbbb桶 | 热久久这里只有精品 | 丁香五婷 | 91福利视频网站 | 狠狠狠色丁香婷婷综合激情 | 看av在线 | 超碰免费成人 | 天天操天天爽天天干 | 97超碰伊人 | 99热免费在线 | 中文字幕国产视频 | 亚洲无吗av | 日本久久91| 国产精品精品久久久久久 | 久久精品影片 | 99这里有精品 | 国产在线精品国自产拍影院 | 亚洲精品免费播放 | 贫乳av女优大全 | 色欧美88888久久久久久影院 | 五月激情久久 | 免费黄色av片 | 成人毛片100免费观看 | 国产剧在线观看片 | 欧美动漫一区二区三区 | 国内久久精品视频 | 黄色官网在线观看 | 免费福利视频网 | 毛片网站观看 | 日韩四虎 | 久艹在线免费观看 | 中文资源在线官网 | 欧美日韩一区二区在线观看 | 在线日本看片免费人成视久网 | 4438全国亚洲精品观看视频 | 亚洲一区精品二人人爽久久 | 久久久wwww| 天天爽天天爽夜夜爽 | 精品视频97| 久久久国产精品电影 | 国产精品久久久久久电影 | 国产999精品久久久久久麻豆 | 久久精品1区2区 | 亚洲国产午夜精品 | 亚洲五月 | 久草爱| 欧美视频日韩 | 五月婷久久 | 97av影院| 亚洲黄色一级视频 | 日韩在线视频看看 | 六月丁香色婷婷 | 国产欧美久久久精品影院 | 成年人在线免费看视频 | 国产精品久久99精品毛片三a | 国产精品视频地址 | 色综合久久88色综合天天免费 | 久久九九精品久久 | 奇米影视777四色米奇影院 | 久草在线视频国产 | 久久久久久久久久久高潮一区二区 | av免费观看网址 | 久久久精品网 | 国产一区二区在线播放视频 | 男女男视频| 国产成人精品午夜在线播放 | 69久久夜色精品国产69 | 日韩有码在线观看视频 | 久99久中文字幕在线 | 91免费网址 | av成人在线播放 | 少妇视频一区 | 天天天天干| 国内三级在线观看 | 中文字幕文字幕一区二区 | 国产精品久久久99 | 午夜精品一区二区三区四区 | 久久天天躁狠狠躁亚洲综合公司 | 在线视频 精品 | 日本中文字幕视频 | 日韩免费视频播放 | 麻豆视频免费观看 | 九草视频在线观看 | 国产91对白在线 | 99在线免费观看视频 | 日韩黄色影院 | 免费看三级黄色片 | 精品在线观看一区二区 | 爱情影院aqdy鲁丝片二区 | 精品欧美乱码久久久久久 | 午夜精品一区二区三区可下载 | 日韩欧美一区二区三区黑寡妇 | 很黄很黄的网站免费的 | 精品国产一区二区三区噜噜噜 | 中文字幕一区二区三区视频 | 伊甸园永久入口www 99热 精品在线 | 久久女同性恋中文字幕 | 国产精品亚洲人在线观看 | 五月天久久久久久 | 97精品国自产拍在线观看 | av在线一级| 天操夜夜操| 国产成人精品综合久久久久99 | 亚洲国产精品500在线观看 | 天天天色综合a | 99久久日韩精品视频免费在线观看 | 麻豆精品在线视频 | 顶级bbw搡bbbb搡bbbb | 黄色在线观看网站 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 99久久久国产免费 | 天天色天天干天天色 | 高清有码中文字幕 | 一区二区三区视频 | 日日干干 | 狠狠躁夜夜躁人人爽超碰91 | 91在线免费视频 | 伊人狠狠色丁香婷婷综合 | 久久久国产精品免费 | 中文字幕精品在线 | 免费在线观看亚洲视频 | 免费麻豆视频 | 一区二区精品久久 | 久草在线观看视频免费 | 国产精品久久久久久久妇 | 在线精品观看 | 亚洲精品女人 | 一区二区精品在线 | 久久99视频精品 | www日| 最近中文国产在线视频 | 国产成年免费视频 | 成人在线播放视频 | 99精品一级欧美片免费播放 | 韩国精品一区二区三区六区色诱 | 日韩在线视频观看免费 | 久久精品国产精品亚洲 | 久草视频免费在线观看 | 国产 在线观看 | 最新免费av在线 | 婷婷六月天在线 | 日本视频不卡 | 黄色片免费电影 | 国产精品毛片一区二区在线 | 中文在线免费一区三区 | 精品国产区 | 精品在线亚洲视频 | 一区二区在线不卡 | 在线网址你懂得 | 色综合天天综合 | 亚洲欧美日韩国产一区二区 | 特级西西www44高清大胆图片 | 日韩免费看片 | 欧美色图p | 免费高清在线视频一区· | 免费黄a大片 | 亚洲三级在线播放 | 国产成人精品久久亚洲高清不卡 | 在线成人免费av | 亚洲人成在线电影 | 免费看黄色91 | 亚洲精品在线观看视频 | 日本最大色倩网站www | 永久免费在线 | 日日夜夜天天射 | 就色干综合 | 久久另类小说 | 国产成人av综合色 | 日韩一级片网址 | 在线观看国产区 | jizzjizzjizz亚洲| 五月天色网站 | 日本高清中文字幕有码在线 | 午夜精品一区二区三区在线播放 | 亚洲国产精品va在线看黑人动漫 | 深夜国产福利 | 欧美精品少妇xxxxx喷水 | 国产在线精品区 | 99欧美精品 | 国产69久久精品成人看 | 久久99精品热在线观看 | 午夜性生活片 | 国产精品女主播一区二区三区 | 丁香六月久久综合狠狠色 | 久久视频在线观看 | 久久久久久久久久免费视频 | 夜夜爽www| 99久久精品免费看国产一区二区三区 | 最新色站| 久久夜夜爽 | 久久久国产精品亚洲一区 | 久久国产精品色婷婷 | 欧美一二区视频 | 亚洲成人av片 | 日韩欧美视频免费看 | 免费人成网ww44kk44 | 丁香五月亚洲综合在线 | 五月婷婷色播 | 欧美三级高清 | 国产一区免费观看 | 97超碰在线资源 | 一区二区不卡视频在线观看 |