天天看點

廈門蒙發利科技(集團)股份有限公司面試題

  • 請介紹下Android 中常用的五種布局?

常用五種布局方式,分别是:FrameLayout(架構布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。 

一、FrameLayout:所有東西依次都放在左上角,會重疊,這個布局比較簡單,也隻能放一點比較簡單的東西。二、LinearLayout:線性布局,每一個LinearLayout裡面又可分為垂直布局(android:orientation="vertical")和水準布局(android:orientation="horizontal" )。當垂直布局時,每一行就隻有一個元素,多個元素依次垂直往下;水準布局時,隻有一行,每一個元素依次向右排列。三、AbsoluteLayout:絕對布局用X,Y坐标來指定元素的位置,這種布局方式也比較簡單,但是在螢幕旋轉時,往往會出問題,而且多個元素的時候,計算比較麻煩。四、RelativeLayout:相對布局可以了解為某一個元素為參照物,來定位的布局方式。主要屬性有:相對于某一個元素android:layout_below、     android:layout_toLeftOf相對于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayout:表格布局,每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素。每一個布局都有自己适合的方式,這五個布局元素可以互相嵌套應用,做出美觀的界面。

  • Android的四大元件有哪些?他們的作用?

Activity:Activity是Android程式與使用者互動的視窗,是Android構造塊中最基本的一種,它需要為保持各界面的狀态,做很多持久化的事情,妥善管理生命周期以及一些跳轉邏輯。

service:背景服務于Activity,封裝有一個完整的功能邏輯實作,接受上層指令,完成相關的事務,定義好需要接受的Intent提供同步和異步的接口。

ContentProvider:是Android提供的第三方應用資料的通路方案,可以派生Content Provider類,對外提供資料,可以像資料庫一樣進行選擇排序,屏蔽内部資料的存儲細節,向外提供統一的接口模型,大大簡化上層應用,對資料的整合提供了更友善的途徑。

BroadCastReceiver:接受一種或者多種Intent作觸發事件,接受相關消息,做一些簡單處理,轉換成一條Notification,統一了Android的事件廣播模型。

  • Android中的動畫有哪幾類,他們的特點和差別是什麼?

在android.view.animation包中有四種基本的動畫 ,透明/伸縮/移動/旋轉。動畫類型

Android的animation由四種類型組成

XML中 alpha漸變透明度動畫效果scale漸變尺寸伸縮動畫效果translate畫面轉換位置移動動畫效果rotate畫面轉移旋轉動畫效果JavaCode中 AlphaAnimation漸變透明度動畫效果ScaleAnimation漸變尺寸伸縮動畫效果TranslateAnimation畫面轉換位置移動動畫效果RotateAnimation畫面轉移旋轉動畫效果Android動畫模式

Animation主要有兩種動畫模式:

一種是tweened animation(漸變動畫) XML中JavaCodealphaAlphaAnimationscaleScaleAnimation一種是frame by frame(畫面轉換動畫) XML中JavaCodetranslateTranslateAnimationrotateRotateAnimationTween動畫,這種實作方式可以使視圖元件移動、放大、縮小以及産生透明度的變化;Frame動畫,傳統的動畫方法,通過順序的播放排列好的圖檔來實作,類似電影。

  • ListView的優化方案

用已經完全消失的行布局對象,替代即将出現的那個方布局對象      Convertview:儲存那個已經完全消息的方布局對象.

優化控件,減少控件的查找次數。  

  • Activity的啟動模式有哪些?是什麼含義?

standard: 标準模式,也是預設模式,一調用startActivity()方法就會産生一個新的執行個體。 

   singleTop: 如果已經有一個執行個體位于Activity棧的頂部時,就不産生新的執行個體,而隻是調用Activity中的newInstance()方法。如果不位于棧頂,會産生一個新的執行個體。 

   singleTask: 會在一個新的task中産生這個執行個體,以後每次調用都會使用這個,不會去産生新的執行個體了。 

   singleInstance: 這個跟singleTask基本上是一樣,隻有一個差別:在這個模式下的Activity執行個體所處的task中,隻能有這個activity執行個體,不能有其他的執行個體。 

  • 跟activity和Task 有關的Inteng啟動方式有哪些?其含義?
  • 請描述下Activity的生命周期。

“standard”和”singleTop”可以被執行個體化多次,并且存在于不同的task中,且一個task可以包括一個activity的多個執行個體;

“singleTask”和”singleInstance”則限制隻生成一個執行個體,并且是task的根元素。

singleTop要求如果建立intent的時候棧頂已經有要建立的Activity的執行個體,則将intent發送給該執行個體,而不發送給新的執行個體。<不全面,有待改進>

  • 注冊廣播有幾種方式,這些方式的優缺點?請談談Android 引入廣播機制的用意.

2種方式

1. 在androidmainfest.xml中注冊   

2. <receiver>

3.     <intent-filter>

4.       <action android:name ="android.intent.action.PICK"/>

5.     </intent-filter>

6. </receiver>

7. 缺點:常駐型,占資源比較大

8. 

9. registerReceiver(receiver,filter);  BroadcastReceiver更新UI一般用這種方法 

a:從MVC的角度考慮(應用程式内)其實回答這個問題的時候還可以這樣問,android為什麼要有那4大元件,現在的移動開發模型基本上也是照搬的web那一套MVC架構,隻不過是改了點嫁妝而已。android的四大元件本質上就是為了實作移動或者說嵌入式裝置上的MVC架構,它們之間有時候是一種互相依存的關系,有時候又是一種補充關系,引入廣播機制可以友善幾大元件的資訊和資料互動。

b:程式間互通消息(例如在自己的應用程式内監_聽系統來電)

c:效率上(參考UDP的廣播協定在區域網路的友善性)

d:設計模式上(反轉控制的一種應用,類似監_聽者模式)

  • 如何退出Activity?如何安全退出已經調用多個Activity的Application?

http://blog.csdn.net/dearlaoyuan/article/details/8005303

  • Android系統的優勢和不足。

Android平台手機5大優勢:

一、開放性.

二、掙脫營運商的束縛.

三、豐富的硬體選擇.

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

五、無縫結合的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平台手機,由于廠商豐富,産品類型多樣,這樣使用同一款機型的使用者越來越少,缺少統一機型的程式強化。舉個稍顯不當的例子,現在山寨機泛濫,品種各異,就很少有專門針對某個型号山寨機的讨論和群組,除了哪些功能異常搶眼、頗受追捧的機型以外。