- 相關(guān)推薦
android面試題(9)
(4)數(shù)字證書都是有有效期的,Android只是在應(yīng)用程序安裝的時(shí)候才會(huì)檢查證書的有效期。如果程序已經(jīng)安裝在系統(tǒng)中,即使證書過期也不會(huì)影響程序的正常功能。
58. 什么是ANR 如何避免它?
在Android上,如果你的應(yīng)用程序有一段時(shí)間響應(yīng)不夠靈敏,系統(tǒng)會(huì)向用戶顯示一個(gè)對(duì)話框,這個(gè)對(duì)話框稱作應(yīng)用程序無響應(yīng)(ANR:Application Not Responding)對(duì)話框。用戶可以選擇讓程序繼續(xù)運(yùn)行,但是,他們?cè)谑褂媚愕膽?yīng)用程序時(shí),并不希望每次都要處理這個(gè)對(duì)話框。因此,在程序里對(duì)響應(yīng)性能的設(shè)計(jì)很重要,這樣,系統(tǒng)不會(huì)顯示ANR給用戶。
Activity 5秒 broadcast10秒
耗時(shí)的操作 worker thread里面完成, handler message…AsynTask , intentservice.等…
59. android中的動(dòng)畫有哪幾類,它們的特點(diǎn)和區(qū)別是什么?
兩種,一種是Tween動(dòng)畫、還有一種是Frame動(dòng)畫。
Tween動(dòng)畫,這種實(shí)現(xiàn)方式可以使視圖組件移動(dòng)、放大、縮小以及產(chǎn)生透明度的變化;
可以通過布局文件,可以通過代碼
1、 控制View的動(dòng)畫
a) alpha(AlphaAnimation)
漸變透明
b) scale(ScaleAnimation)
漸變尺寸伸縮
c) translate(TranslateAnimation)
畫面轉(zhuǎn)換、位置移動(dòng)
d) rotate(RotateAnimation)
畫面轉(zhuǎn)移,旋轉(zhuǎn)動(dòng)畫
2、 控制一個(gè)Layout里面子View的動(dòng)畫效果
a) layoutAnimation(LayoutAnimationController)
b) gridAnimation(GridLayoutAnimationController)
另一種Frame動(dòng)畫,傳統(tǒng)的動(dòng)畫方法,通過順序的播放排列好的圖片來實(shí)現(xiàn),類似電影。
62. 說說mvc模式的原理,它在android中的運(yùn)用。
MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。
Android中界面部分也采用了當(dāng)前比較流行的MVC框架,在Android中M就是應(yīng)用程序中二進(jìn)制的數(shù)據(jù),V就是用戶的界面。Android的界面直接采用XML文件保存的,界面開發(fā)變的很方便。在Android中C也是很簡(jiǎn)單的,一個(gè)Activity可以有多個(gè)界面,只需要將視圖的ID傳遞到setContentView(),就指定了以哪個(gè)視圖模型顯示數(shù)據(jù)。
在Android SDK中的數(shù)據(jù)綁定,也都是采用了與MVC框架類似的方法來顯示數(shù)據(jù)。在控制層上將數(shù)據(jù)按照視圖模型的要求(也就是Android SDK中的Adapter)封裝就可以直接在視圖模型上顯示了,從而實(shí)現(xiàn)了數(shù)據(jù)綁定。比如顯示Cursor中所有數(shù)據(jù)的ListActivity,其視圖層就是一個(gè)ListView,將數(shù)據(jù)封裝為L(zhǎng)istAdapter,并傳遞給ListView,數(shù)據(jù)就在ListView中顯示。
63. 通過點(diǎn)擊一個(gè)網(wǎng)頁上的url 就可以完成程序的自動(dòng)安裝,描述下原理
Day11 AddJavascriptInterface
new Object{
callphone();
installapk();
}
64,Service和Activity在同一個(gè)線程嗎
默認(rèn)情況同一線程 main主線程 ui線程
65,java中的soft reference是個(gè)什么東西
StrongReference 是 Java 的默認(rèn)引用實(shí)現(xiàn), 它會(huì)盡可能長(zhǎng)時(shí)間的存活于 JVM 內(nèi), 當(dāng)沒有任何對(duì)象指向它時(shí) GC 執(zhí)行后將會(huì)被回收
SoftReference 會(huì)盡可能長(zhǎng)的保留引用直到 JVM 內(nèi)存不足時(shí)才會(huì)被回收(虛擬機(jī)保證), 這一特性使得 SoftReference 非常適合緩存
應(yīng)用詳細(xì)見豆瓣客戶端圖片的緩存
66,udp連接和TCP的不同之處
tcp/滑動(dòng)窗口協(xié)議. 擁塞控制.
udp 不關(guān)心數(shù)據(jù)是否達(dá)到,是否阻塞
畫面優(yōu)先. tcp
流暢優(yōu)先 udp
67, android開發(fā)中怎么去調(diào)試bug
邏輯錯(cuò)誤
1.斷點(diǎn) debug
2. logcat ,
界面布局,顯示 hierarchyviewer.bat
68.service里面可以彈土司么
可以
69.寫10個(gè)簡(jiǎn)單的linux命令
cat ls ps psw wc mv rm cd ping tracert find grep tail vi gcc make ifconfig
startup dhcp
70 JNI調(diào)用常用的兩個(gè)參數(shù)
JNIEnv *env, jobject javaThis
71. 書寫出android工程的目錄結(jié)構(gòu)
src
android. jar
asset
res
gen
manifest
72. ddms 和traceview的區(qū)別.
daivilk debug manager system
1.在應(yīng)用的主activity的onCreate方法中加入Debug.startMethodTracing("要生成的traceview文件的名字");
2.同樣在主activity的onStop方法中加入Debug.stopMethodTracing();
3.同時(shí)要在AndroidManifest.xml文件中配置權(quán)限
3.重新編譯,安裝,啟動(dòng)服務(wù),測(cè)試完成取對(duì)應(yīng)的traceview文件(adb pull /sdcard/xxxx.trace)。
4.直接在命令行輸入traceview xxxxtrace,彈出traceview窗口,分析對(duì)應(yīng)的應(yīng)用即可。
traceview 分析程序執(zhí)行時(shí)間和效率
KPI : key performance information : 關(guān)鍵性能指標(biāo):
splash界面不能超過5秒
從splash 界面加載mainactivity 不能超過0.7秒
74. 利用mvc的模式重構(gòu)代碼
1) 重構(gòu)前的代碼Bmi.java:
package com.demo.android.bmi;
import java.text.DecimalFormat;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
【android面試題(9)】相關(guān)文章:
android面試題目09-08
Android工程師的面試題08-07
Android工程師面試題10-24
Microsoft面試題09-04
iOS面試題07-10
公司面試題09-12
hibernate面試題10-18
英語面試題精選06-13
小升初面試題06-10