Android技术面试整理

colife

 

Android技术面试整理

 前面19题也常考题目!! 

1、Android的季非常组件是啦把,它们的图?

2、请介绍下Android中常用的五种植布局。

3、android中之卡通有哇几接近,它们的表征以及界别是什么

4、android 中出哇几栽解析xml的切近?官方推荐哪种?以及她的法则及界别。

5、ListView的优化方案

6、请介绍下Android的数存储方。

7、activity的启航模式有什么样?是什么意义?

8、跟activity和Task 有关的 Intent启动方式产生什么?其意思?

9、请描述下Activity的生命周期。

10、activity在屏幕旋转时之生命周期

11、如何启用Service,如何停用Service。

12、注册广播有几乎栽方法,这些点子有哪里优缺点?请谈谈Android引入广播机制的意。 

13、请解释下在单线程模型中Message、Handler、Message
Queue、Looper之间的关联。

14、 简要解释一下activity、 intent 、intent
filter、service、Broadcase、BroadcaseReceiver

15、说说mvc模式之原理,它于android中的施用,android的官建议应用程序的开使mvc模式。何谓mvc?

16、什么是ANR 如何避免她?

17、什么情形会招致ForceClose ?如何避免?能否捕获导致该的百般?

18、描述一下android之系架构

19、请介绍下ContentProvider是怎兑现数量共享的。

20、Android本身的api并未声明会抛来很,则该当运行时有无可能抛出runtime异常,你遇到了吧?诺有的讲话会招致什么问题?如何解决?

21、IntentService有哪长?

22、如果后台的Activity由于某因让网回收了,如何当让系统回收之前封存时状态?

23、如何将一个Activity设置成窗口的体裁。

24、如何退出Activity?如何安全退出已调用多个Activity的Application?

25、AIDL的齐是什么?如何工作?能处理哪些项目的数目?

26、请讲下Android程序运行时权和文件系统权限的区分。

27、系统上安了多种浏览器,能否指定某个浏览器访问指定页面?请证实原因。

28、android系统的优势与不足

29、Android
dvm的长河以及Linux的长河, 应用程序的过程是否为和一个定义

30、sim卡的EF文件是啊?有哪打算

31、嵌入式操作系统内存管理起啊几种植,
各发哪特点

32、什么是嵌入式实时操作系统,Android 操作系统属于实时操作系统吗?

33、一长长的太丰富的紧缺消息约占小byte?

34、有一个一维整型数组int[]data保存的凡如出一辙摆宽也width,高为height的图片像素值信息。请写一个算法,将拖欠图片有的反动不透明(0xffffffff)像素点的透明度调整呢50%

35、如何拿SQLite数据库(dictionary.db文件)与apk文件共发布

36、如何以辟res
aw目录中的数据库文件?

37、DDMS和TraceView的区别?

38、java中什么引用本地语言

39、谈谈Android的IPC(进程之中通信)机制

40、NDK是什么

 

 

 1、Android的季充分组件是啦把,它们的意?

Activity:Activity是Android次第和用户交互的窗口,是Android构造块被极基本的同样栽,它要也保各界面的状态,做多持久化的事情,妥善保管生命周期以及一些跳转逻辑。

service:后台服务让Activity,封装有一个圆的功用逻辑实现,接受上层指令,完成有关的食品,定义好待承受之Intent提供一块跟异步的接口。

Content
Provider:是Android提供的老三在用数据的看方案,可以派生Content
Provider类,对外提供数据,可以像数据库同样进行选择排序,屏蔽内部数据的囤细节,向外提供联合的借口模型,大大简化上层应用,对数据的整合提供了双重有利的门路

BroadCast
Receiver:接受平等种植或又Intent作触发事件,接受有关消息,做一些简短处理,转换成一长Notification,统一了Android的事件广播模型

2、请介绍下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里面可以切实定义每一个元素。每一个布局都发谈得来称之方式,这五单布局元素得以互相嵌套应用,做出漂亮的界面。

3、android中之卡通片有啊几类似,它们的性状和区分是呀 

报:两种植,一种植是Tween动画、还有平等种是Frame动画。

Tween动画,这种实现方式得以要视图组件移动、放大、缩小与产生透明度的变动;

Frame动画,传统的卡通方法,通过各个的播放排列好的图来实现,类似电影。

4、 android 中出哇几栽解析xml的切近?官方推荐哪种?以及她的法则及界别。

报经:XML解析主要出三栽方式,SAX、DOM、PULL。常规在PC上出我们应用Dom相对轻松把,但有性敏感的数据库或手机上还是着重采取SAX方式,SAX读取是单独为的,优点:不占内存空间、解析属性方便,但缺点就是于套嵌多独分支来说处理不是异常有益于。而DOM方式会把整XML文件加载到内存中失,这里Android开发网提醒大家该措施在搜寻方面可跟XPath很好之组成而数据量不是老大非常推荐应用,而PULL常常为此当J2ME对于节点处理比较好,类似SAX方式,同样不行省内存,在J2ME中我们常以的KXML库来分析。

5、 ListView的优化方案

报:1、如果由定义适配器,那么当getView方法中一经考虑方法传进的参数contentView是否也null,如果也null就创造contentView并回,如果不为null则直下。在斯方式吃尽可能少创建view。

  
2、给contentView设置tag(setTag()),传入一个viewHolder对象,用于缓存要展示的数目,可以达标图像数据异步加载的效能。

3、如果listview需要展示的item很多,就要考虑分页加载。比如一共使展示100长或者另行多的当儿,我们可考虑先加载20漫漫,等用户拉至列表底部的时再失加载接下的20条。

6、 请介绍下Android的数额存储方。

答:使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据;

Preference,File, DataBase这三栽艺术分别对应之目是/data/data/PackageName/Shared_Pref,
/data/data/Package Name/files, /data/data/PackageName/database 。

同样:使用SharedPreferences存储数据

先是说明SharedPreferences存储方,它是 Android提供的所以来储存一些简布置信息之均等种植体制,例如:登录用户的用户称以及密码。其采用了Map数据结构来储存数据,以键值的道囤,可以省略的读取与写入,具体实例如下:

voidReadSharedPreferences(){

StringstrName,strPassword;

SharedPreferences   user = getSharedPreferences(“user_info”,0);

strName =user.getString(“NAME”,””);

strPassword =user getString(“PASSWORD”,””);

}

voidWriteSharedPreferences(String strName,String strPassword){

SharedPreferences   user = getSharedPreferences(“user_info”,0);

uer.edit();

user.putString(“NAME”,strName);

user.putString(“PASSWORD”,strPassword);

user.commit();

}

数据读取与写入的方法还非常简单,只是以写入的时节有些区别:先调用edit()使其处于编辑状态,然后才会修改数据,最后采取commit()提交修改的数据。实际上SharedPreferences是使了XML格式将数据存储到设备受到,在DDMS中之File
Explorer中之/data/data/<package
name>/shares_prefs下。使用SharedPreferences是产生几限制的:只能于同一个包内使用,不可知当不同的保证中用。

次:文件存储数据

文件存储方是平种植于常用的法子,在Android中读取/写副文件之办法,与Java饱受贯彻I/O的主次是一点一滴一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。具体实例如下:

String fn =“moandroid.log”;

FileInputStreamfis = openFileInput(fn);

FileOutputStreamfos = openFileOutput(fn,Context.MODE_PRIVATE);

其三:网络存储数据

网络存储方,需要同Android网络数据包打交道,关于Android 网络数据包的详尽说明,请阅读Android
SDK引用了Java SDK的怎么样package?。

四:ContentProvider

1、ContentProvider简介

当使用持续ContentProvider类,并重复写该类用于提供数据和储存数据的法门,就可以通往其他以共享其数量。虽然下其它办法吧得以对外共享数据,但多少访问方式会为数量存储的道使不同,如:采用文件措施对外共享数据,需要展开文件操作读写多少;采用sharedpreferences共享数据,需要动用sharedpreferencesAPI读写多少。而下ContentProvider共享数据的功利是联了数码访问方式。

2、Uri类简介

Uri代表了一旦操作的数,Uri主要包含了有限有的信息:1.需操作的ContentProvider ,2.针对性ContentProvider中的哟数据进行操作,一个Uri由以下几片组成:

1.scheme:ContentProvider(内容提供者)的scheme已经由Android所规定也:content://…

2.主机名(或Authority):用于唯一标识是ContentProvider,外部调用者可以因此标识来找到她。

3.门路(path):可以据此来代表我们只要操作的多寡,路径的构建应因作业而定,如下:

若操作contact表中id为10的笔录,可以构建这样的路径:/contact/10

设操作contact表中id为10底笔录之name字段, contact/10/name

而操作contact表中之享有记录,可以构建这样的门道:/contact?

使操作的数量不自然来自数据库,也可是文本等客存储方,如下:

只要操作xml文件中contact节点下之name节点,可以构建这样的门径:/contact/name

假若一旦管一个字符串转换成为Uri,可以采取Uri类中之parse()方法,如下:

Uri uri
=Uri.parse(“content://com.changcheng.provider.contactprovider/contact”)

3、UriMatcher、ContentUrist和ContentResolver简介

为Uri代表了使操作的数码,所以我们好经常用解析Uri,并起 Uri中获取数据。Android系统提供了片只用于操作Uri的工具类,分别吗UriMatcher 和ContentUris 。掌握其的使,会便宜我们的支付工作。

UriMatcher:用于匹配Uri,它的用法如下:

 

1.先是将您需要匹配Uri路径全部被登记达,如下:

//常量UriMatcher.NO_MATCH表示未配合任何路径的返回码(-1)。

UriMatcheruriMatcher = new UriMatcher(UriMatcher.NO_MATCH);

//如果match()方法匹配content://com.changcheng.sqlite.provider.contactprovider
/contact路径,返回匹配配码为1

uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”,
“contact”, 1);//添加需要匹配uri,如果配合就会见回去匹配配码

//如果match()方法匹配content://com.changcheng.sqlite.provider.contactprovider/contact/230路,返回匹配配码为2

uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”,
“contact/#”,2);//#号吧过渡配符

2.挂号了要相当的Uri后,就可利用uriMatcher.match(uri)方法对输入的Uri进行匹配,如果匹配就回去匹配配码,匹配码是调用 addURI()方法传入的老三独参数,假设匹配content://com.changcheng.sqlite.provider.contactprovider/contact路径,返回的匹配码为1。

ContentUris:用于获取Uri路径后面的ID部分,它发生星星点点独比实用的方:

withAppendedId(uri,id)用于为路径加上ID部分

parseId(uri)方法用于自路径中得到ID部分

ContentResolver:当外部应用得对ContentProvider中的数目进行添加、删除、修改及询问操作时,可以用 ContentResolver 类来就,要抱ContentResolver 对象,可以使Activity提供的getContentResolver()方法。 ContentResolver使用insert、delete、update、query方法,来操作数据。

7、 activity的开行模式产生怎么样?是啊意思?

报经:在android里,有4种植activity的启航模式,分别吗:

“standard” (默认)

“singleTop”

“singleTask”

“singleInstance” 

它要有如下不同:

1. 怎么控制所属task

“standard”和”singleTop”的activity的靶子task,和接受的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。

若是提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。

“singleTask”和”singleInstance”总是拿activity作为一个task的根元素,他们不会见受启动至一个其他task里。

2. 是否同意多只实例

“standard”和”singleTop”可以被实例化多次,并且在让不同之task中,且一个task可以概括一个activity的大半独实例;

“singleTask”和”singleInstance”则限制只生成一个实例,并且是task的根元素。 singleTop要求如创建intent的早晚栈顶已经起要开创
的Activity的实例,则用intent发送给该实例,而非发送给新的实例。

3. 是否同意其他activity存在让本task内

“singleInstance”独占一个task,其它activity不可知在十分task里;如果它启动了一个初的activity,不管新的activity的launch
mode 如何,新的activity都将会晤交别的task里运行(如同加了FLAG_ACTIVITY_NEW_TASK参数)。

如除此以外三栽模式,则好与其它activity共存。

4. 是否每次都坏成新实例

“standard”对于没有一个起步Intent都见面转一个activity的新实例;

“singleTop”的activity如果在task的栈顶的话,则不生成新的该activity的实例,直接用栈顶的实例,否则,生成该activity的实例。

准现在task栈元素为A-B-C-D(D在栈顶),这时候吃D发一个起步intent,如果D是 “standard”的,则生成D的一个新实例,栈变为A-B-C-D-D。

如果D是singleTop的言辞,则不会见生产D的初实例,栈状态仍为A-B-C-D

要是此时为B发Intent的语句,不管B的launchmode是”standard” 还是 “singleTop” ,都见面生成B的新实例,栈状态变为A-B-C-D-B。

“singleInstance”是彼所在栈的唯一activity,它会每次都吃选定。

“singleTask”如果在栈顶,则受intent,否则,该intent会给抛,但是该task仍会回去前台。

当就有的activity实例处理新的intent时候,会调用onNewIntent()方法
如果接intent生成一个activity实例,那么用户可由此back键回到上一个状态;如果是早已是的一个activity来拍卖这intent的语,用户不能够经过按back键返回到马上之前的状态。

8、  跟activity和Task 有关的 Intent启动方式发生怎么样?其意义?

核心的Intent Flag有:

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_CLEAR_TOP

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

FLAG_ACTIVITY_SINGLE_TOP

FLAG_ACTIVITY_NEW_TASK

  如果安,这个Activity会成为历史stack中一个新Task的始发。一个Task(从启动它的Activity到下一个Task中之 Activity)定义了用户可迁移的Activity原子组。Task可以走及前台和后台;在某特定Task中的具有Activity总是保持同等的先后。

 这个标志一般用来呈现“启动”类型的作为:它们提供用户同样多重可以独自完成的业务,与开行它们的Activity完全无关。

 使用是标志,如果在启动之Activity的Task已经在运作吧,那么,新的Activity将非会见启动;代替的,当前Task会简单的移入前台。参考FLAG_ACTIVITY_MULTIPLE_TASK标志,可以禁用这同行。

 这个标志不可知用于调用方对已起步之Activity请求结果。

FLAG_ACTIVITY_CLEAR_TOP 
  如果设置,并且这个Activity已经以眼前之Task中运作,因此,不再是重启航一个以此Activity的实例,而是在斯Activity上方的有Activity都拿关门,然后是Intent会作为一个初的Intent投递到直的Activity(现在位于顶端)中。 
  例如,假要一个Task中含这些Activity:A,B,C,D。如果D调用了startActivity(),并且包含一个指向Activity
B的Intent,那么,C和D都将结束,然后B接收及此Intent,因此,目前stack的观是:A,B。 
  上例被正运行的Activity
B既可当onNewIntent()中收到是新的Intent,也得把好关闭然后再次起动来接收这Intent。如果她的启动模式声明也 “multiple”(默认值),并且你没有以这个Intent中安装FLAG_ACTIVITY_SINGLE_TOP标志,那么她用关门然后再次创设;对于任何的启航模式,或者以是Intent中安装FLAG_ACTIVITY_SINGLE_TOP标志,都用将此Intent投递到当前此实例的onNewIntent()中。 
  这个启动模式还可和FLAG_ACTIVITY_NEW_TASK结合起来用:用于启动一个Task中的根Activity,它见面把坏Task中其他运行的实例带入前台,然后去掉其直到根Activity。这大有因此,例如,当打Notification
Manager处启动一个Activity。

FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

    如果安这个标志,这个activity不管是从一个初的栈启动还是由已产生栈推到栈顶,它还拿以the
front door of the
task的主意启动。这就是讲讲导致其他和使用相关的栈都讲重置到正常状态(不管是在讲activity移入还是移除),如果欲,或者直接重置该库为始发状态。

FLAG_ACTIVITY_SINGLE_TOP    如果安,当这个Activity位于历史stack的上面运行时,不再启动一个初的

FLAG_ACTIVITY_BROUGHT_TO_FRONT    这个标志一般不是出于程序代码设置的,如在launchMode中设置singleTask模式时系统辅助您设定。

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 
  如果安,这将当Task的Activitystack中设置一个尚原点,当Task恢复时,需要清理Activity。也就是说,下同样赖Task带在 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED标记上前台时(典型的操作是用户在主画面重开它),这个Activity和她之上的还拿关闭,以至于用户不克重复回来回到她,但是可回到之前的Activity。 
  这在公的主次来分割点的时节挺有因此。例如,一个e-mail应用程序可能出一个操作是翻开一个附件,需要启动图片浏览Activity来显示。这个 Activity应该作为e-mail应用程序Task的一模一样组成部分,因为马上是用户在这Task中触发的操作。然而,当用户距离这Task,然后起主画面选择e-mail
app,我们兴许想回到查看的对话中,但不是查看图片附件,因为及时叫人纳闷。通过以启动图片浏览时设定是标志,浏览以及另启动之Activity在下次用户返回到mail程序时犹用全破。

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 
  如果安,新的Activity不会见在近年来起先的Activity的列表中保留。

FLAG_ACTIVITY_FORWARD_RESULT    如果设置,并且这个Intent用于自一个在的Activity启动一个新的Activity,那么,这个当回答目标的Activity将会晤流传这个新的Activity中。这种办法下,新的Activity可以调用setResult(int),并且这个结果值将发送给大作为对目标的 Activity。

FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY    这个标志一般不由应用程序代码安,如果是Activity是起历史记录里启动的(常以HOME键),那么,系统会拉扯您设定。

FLAG_ACTIVITY_MULTIPLE_TASK 
  不要使用此标志,除非您自己实现了应用程序启动器。与FLAG_ACTIVITY_NEW_TASK结合起来用,可以禁用把已怀的Task送入前台的一言一行。当装时,新的Task总是会启动来拍卖Intent,而休随便这是是否都闹一个Task可以拍卖同的事务。 
  由于默认的网不分包图形Task管理效能,因此,你不应该以这个标志,除非您提供给用户同样种植艺术可以回去到已启动之Task。 
  如果FLAG_ACTIVITY_NEW_TASK标志没有装,这个标志被忽略。 

FLAG_ACTIVITY_NO_ANIMATION 
  如果当Intent中装置,并传递给Context.startActivity()的话,这个标志将阻止系统上下一个Activity时用 Acitivity迁移动画。这并无意味动画将毫不运行——如果另外一个Activity在开行显示之前,没有点名这个标志,那么,动画将让运。这个标志可以死好的用于执行一连串的操作,而动画片被用作是重复胜一级的轩然大波之驱动。

FLAG_ACTIVITY_NO_HISTORY    如果安,新的Activity将不再历史stack中保存。用户同样离开她,这个Activity就关了。这为堪由此安装noHistory特性。

FLAG_ACTIVITY_NO_USER_ACTION    如果设置,作为新启动之Activity进入前台时,这个标志将在Activity暂停之前阻止打太前沿的Activity回调的onUserLeaveHint()。 
  典型的,一个Activity可以借助之回调指明显式的用户动作引起的Activity移有后台。这个回调在Activity的生命周期中标记一个适中的点,并关闭部分Notification。 
  如果一个Activity通过非用户驱动之轩然大波,如来电或闹钟,启动的,这个标志吧当传递给Context.startActivity,保证暂停的Activity不觉得用户既知晓其Notification。

FLAG_ACTIVITY_PREVIOUS_IS_TOP 
  If set and this intent is being used to launch a new activity froman
existing one, the current activity will not be counted as the top
activityfor deciding whether the new intent should be delivered to the
top instead ofstarting a new one. The previous activity will be used as
the top, with theassumption being that the current activity will finish
itself immediately.

FLAG_ACTIVITY_REORDER_TO_FRONT 
  如果当Intent中装置,并传递让Context.startActivity(),这个标志将掀起已经运行的Activity移动到历史stack的头。 
  例如,假而一个Task由四个Activity组成:A,B,C,D。如果D调用startActivity()来启动Activity
B,那么,B会倒至历史stack的上方,现在底主次变成A,C,D,B。如果FLAG_ACTIVITY_CLEAR_TOP标志吧设置的话,那么这标志将为忽视。

9、请描述下Activity的生命周期。

报经:activity的生命周期方法来:onCreate()、onStart()、onReStart()、onResume()、onPause()、onStop()、onDestory();

看得出生命周期:从onStart()直到系统调用onStop()

前台生命周期:从onResume()直到系统调用onPause()

10、activity在屏幕旋转时的生命周期

报:不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会尽同一不行,切竖屏时见面实行两不善;设置Activity的android:configChanges=”orientation”时,切屏还是碰头又调用各个生命周期,切横、竖屏时独自会实施同一涂鸦;设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会见还调用各个生命周期,只会实行onConfigurationChanged方法

11、如何启用Service,如何停用Service。

服务的出比较简便,如下:

第一步:继承Service类

public classSMSService extends Service {}

其次步:在AndroidManifest.xml文件中之<application>节点里对劳动进行部署:<serviceandroid: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()方法并无会见造成拖欠方法被反复调用。

onUnbind()只来使用Context.bindService()方法启动服务时才会回调该方式。该方式在调用者与服务解除绑定时为调用

 

12、注册广播有几种办法,这些主意有何优缺点?请谈谈Android引入广播机制的意图。

答:首先写一个类要继承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)第二栽是常驻型,也就是说当应用程序关闭后,如果起信息播报来,程序为会见吃系统调用自动运行。 

13、请说下在单线程模型中Message、Handler、Message
Queue、Looper之间的关联。

报:简单的说,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线程。

  1. Handler

   
Handler处理者,是Message的要害处理者,负责Message的殡葬,Message内容的推行处理。后台线程就是经污染进的 Handler对象引用来sendMessage(Message)。而利用Handler,需要implement 该类的 handleMessage(Message)方法,它是拍卖这些Message的操作内容,例如Update
UI。通常要子类化Handler来实现handleMessage方法。

  1. Message Queue

    Message
Queue消息队列,用来存放通过Handler发布的音信,按照先进先出执行。

    每个message
queue都见面发出一个应和之Handler。Handler会向messagequeue通过个别种植艺术发送信息:sendMessage或post。这半种信息还见面插在message
queue队尾并按先进先出执行。但经这有限种植艺术发送的信执行之方式略有不同:通过sendMessage发送的凡一个message对象,会让 Handler的handleMessage()函数处理;而透过post方法发送的凡一个runnable对象,则会融洽执行。

  1. 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对象。

14、简要解释一下activity、 intent 、intent
filter、service、Broadcase、BroadcaseReceiver

报经:一个activity呈现了一个用户可操作的可视化用户界面;一个service不含有可见的用户界面,而是以后台运行,可以跟一个activity绑定,通过绑定暴露出接口并同那进展通信;一个broadcast
receiver是一个收取播放消息并做出答复的component,broadcast
receiver没有界面;一个intent是一个Intent对象,它保存了音之情节。对于activity和service来说,它指定了要的操作名称和待操作数据的URI,Intent对象好显式的指定一个靶component。如果这样的话,android会找到这component(基于manifest文件中的扬言)并激活它。但只要一个靶不是显式指定的,android必须找到响应intent的超级component。它是透过将Intent对象以及对象的intent
filter相比较来形成这等同工作之;一个component的intent
filter告诉android该component能处理的intent。intentfilter也是于manifest文件中扬言的。

15、说说mvc模式的原理,它于android中之以,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层,当然这里需要开展java和javascript之间的通信,幸运的是,android提供了它们中充分便宜的通信实现。

  2)控制层(controller):android的控制层的沉重通常落于了许多的acitvity的肩上,这句话也便迷迷糊糊含了永不当acitivity中描写代码,要透过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的acitivity的应时间是5s,如果耗时的操作放在这里,程序即使老易让回收掉。

  3)模型层(model):对数据库的操作、对网络等之操作都应有于model里面处理,当然对业务计算相当于操作也是必放在的该层的。

16、什么是ANR 如何避免她?

报:ANR:Application Not
Responding。在Android中,活动管理器和窗口管理器这片独网服务承担监视应用程序的应,当用户操作的以5s内应用程序没能做出反应,BroadcastReceiver以10秒内并未尽了,就见面冒出应用程序无响应对话框,这既是ANR。

免方式:Activity应该以它们的最主要生命周期方法(如onCreate()和onResume())里尽可能少的去开创建操作。潜在的耗时操作,例如网络或者数据库操作,或者高耗时之计量而反各图尺寸,应该于子线程里(或者异步方式)来成功。主线程应该为子线程提供一个Handler,以便形成时亦可交给给主线程。

17、什么情况会导致Force Close ?如何避免?能否捕获导致其的非常?

报经:程序出现异常,比如nullpointer。

避:编写程序时逻辑连贯,思维缜密。能捕获异常,在logcat中可知来看那个信息

18、描述一下android之系统架构

android系统架构分从下为上呢linux 内核层、运行库、应用程序框架层、和应用程序层。

linuxkernel:顶硬件的驱动程序、网络、电源、系统安全以及内存管理等于作用。

libraries和 android
runtime
:libraries:即c/c++函数库部分,大多数还是开放源代码的函数库,例如webkit(引擎),该函数库负责 android网页浏览器的运行,例如标准的c函数库libc、openssl、sqlite等,当然也席卷支持游戏开发2dsgl暨 3dopengles,在多媒体方面来mediaframework框架来支撑各种影音和图形文件的播放以及展示,例如mpeg4、h.264、mp3、 aac、amr、jpg和png等过剩底多媒体文件格式。android的runtime负责解释与推行生成的dalvik格式的配节码。

  applicationframework(应用软件架构),java应用程序开发人员主要是行使该层封装好的api进行高效开。

  applications:该层是java的应用程序层,android内置的googlemaps、e-mail、即经常通信工具、浏览器、mp3播放器等处于该层,java开发人员开发的次为高居该层,而且跟停放的应用程序具有相同的职务,可以调用内置的应用程序,也得以替换内置的应用程序。

  上面的季单层次,下层为上层服务,上层需要下层的支持,调用下层之服务,这种严峻分层的法子带的特大的平静、灵活性与而扩展性,使得不同层的开发人员可以按标准专心特定层的开发。

android应用程序使用框架的api并以框架下运作,这便带了程序支付的高度一致性,另一方面也报告我们,要惦记写起上便捷的次就算非得对合 applicationframework进行充分深刻的接头。精通applicationframework,你虽可以真正的敞亮android的计划及运行机制,也就算重新会驾驭整个应用层的开。

19、请介绍下ContentProvider是怎么促成多少共享的。

一个先后可以透过落实一个Content
provider的虚幻接口将团结的多寡完全暴露出来,而且Contentproviders是因看似数据库中表的措施将数据暴露。Content
providers存储和搜索数据,通过其好于具备的应用程序访问到,这也是应用程序之间唯一共享数据的方法。

如果想只要应用程序的数据公开化,可由此2种方法:创建一个属您自己之Content
provider或者将你的数目增长到一个既是的Content
provider中,前提是发出雷同数据类型并且有描绘副Contentprovider的权。

哪些通过一致模仿标准以及联合之接口获取其它应用程序暴露的数量?

   
Android提供了ContentResolver,外界的次序可以由此ContentResolver接口访问ContentProvider提供的数码。

20、Service和Thread的区别?

报:servie是系统的组件,它由网经过托管(servicemanager);它们之间的通信类于client和server,是同等种植轻量级的ipc通信,这种通信的载体是binder,它是以linux层交换信息之平种植ipc。而thread是由于本应用程序托管。

1).
Thread:Thread是程序执行的极致小单元,它是分配CPU的中坚单位。可以据此Thread 来实施有异步的操作。

2).
Service:Service是android的一律种植体制,当其运行的当儿要是LocalService,那么相应之Service 是运行在主进程的main 线程上的。如:onCreate,onStart这些函数在让网调用的下还是当主进程的 main 线程上运行的。如果是Remote Service,那么相应的Service 则是运作于独立进程的main 线程上。

既这样,那么我们怎么而就此Service 呢?其实就和android 的系统编制有关,我们先行用Thread 来说。Thread的运行是独自为 Activity 的,也就是说当一个Activity 被 finish 之后,如果您无主动停止Thread 或者Thread 里的 run方法无尽了的话,Thread 也会直接执行。因此这里见面冒出一个题目:当Activity 被 finish 之后,你不再具有该Thread 的援。另一方面,你无法于不同之Activity 中针对同一Thread 进行支配。  

推个例:如果您的Thread 需要不停止地隔一段时间就要连续服务器做某种同步的话,该Thread 需要在Activity 没有start的时呢以运行。这个时节当您start 一个Activity 就没章程在该Activity 里面控制前创建的Thread。因此而就算需要创造并启动一个Service ,在Service 里面创建、运行并决定该Thread,这样尽管解决了拖欠问题(因为任何Activity 都得以控制同一Service,而系统为才见面创造一个遥相呼应Service 的实例)。  

为此你得拿Service 想象变为一种信息服务,而若可在外有Context 的地方调用Context.startService、Context.stopService、Context.bindService,Context.unbindService,来决定其,你为可以Service 里登记BroadcastReceiver,在任何地方通过发送broadcast 来支配其,当然这些都是Thread 做不交的。

21、Android本身的api并未声明会抛坏,则该于运作时有无可能抛出runtime异常,你相逢过吗?诺有的口舌会招致什么问题?如何缓解?

答:会,比如nullpointerException。我赶上了,比如textview.setText()时,textview没有初始化。会招致程序无法正常运转出现forceclose。打开控制台查看logcat信息搜索有大信息并修改程序。

22、IntentService有哪里长?

报经:Acitivity的进程,当处理Intent的时刻,会生一个遥相呼应之Service; Android的历程处理器现在会尽可能的免kill掉你;非常容易使用

23、如果后台的Activity由于有因为网回收了,如何在为系统回收之前封存时状态?

报:重写onSaveInstanceState()方法,在此措施被保留得保留之多少,该措施以会当activity被回收之前调用。通过再写onRestoreInstanceState()方法可从中提取保存好的数量

24、如何拿一个Activity设置成窗口的体制。

答:<activity>中配置:android :theme=”@android:style/Theme.Dialog” 

除此以外android:theme=”@android:style/Theme.Translucent” 是安装透明

25、如何退出Activity?如何安全退出已调用多个Activity的Application?

报经:对于单一Activity的采取来说,退出很简单,直接finish()即可。当然,也得以就此killProcess()和System.exit()这样的法。

对于多只activity,1、记录打开的Activity:每打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。2、发送特定广播:在得了应用时,发送一个一定的播放,每个Activity收到广播后,关闭即可。3、递归退出:在开拓新的Activity时使用startActivityForResult,然后自己加标志,在onActivityResult中拍卖,递归关闭。为了编程方便,最好定义一个Activity基类,处理这些同接入问题。

 

每当2.1之前,可以应用ActivityManager的restartPackage方法。

其可一直了所有应用。在利用时需权限android.permission.RESTART_PACKAGES。

顾不要受她的讳迷惑。

唯独,在2.2,这个法子失效了。在2.2补充加了一个初的点子,killBackground
Processes(),需要权限android.permission.KILL_BACKGROUND_PROCESSES。可惜的是,它跟2.2底restartPackage一样,根本打不至应该之功用。

除此以外还有一个方,就是系统自带的应用程序管理里,强制结束程序的计,forceStopPackage()。它需权限android.permission.FORCE_STOP_PACKAGES。并且要添加android:sharedUserId=”android.uid.system”属性。同样可惜的凡,该方式是非公开的,他只好运行于系经过,第三着次无法调用。

盖用以Android.mk中添加LOCAL_CERTIFICATE := platform。

若是Android.mk是用于在Android源码下编译程序用之。

打上述可以视,在2.2,没有辙直接收一个运,而不得不用自己之法间接办到。

临时提供几乎独章程,供参考:

1、抛大强制退出:

欠法通过抛大,使程序Force Close。

征可以,但是,需要解决的题材是,如何使程序结束掉,而无弹有Force
Close的窗口。

2、记录打开的Activity:

列打开一个Activity,就记录下来。在需要退出时,关闭每一个Activity即可。

3、发送特定广播:

以待收尾应用时,发送一个一定的播放,每个Activity收到广播后,关闭即可。

4、递归退出

当开辟新的Activity时用startActivityForResult,然后自己加标志,在onActivityResult中处理,递归关闭。

除第一个,都是眷恋方法把各个一个Activity都结束掉,间接达到目的。但是这么做同样无完美。你会意识,如果自己之应用程序对各级一个Activity都安装了nosensor,在个别只Activity结束之空闲,sensor可能立竿见影了。但起码,我们的目的达到了,而且没有影响用户使用。为了编程方便,最好定义一个Activity基类,处理这些共同通问题。 

26、AIDL的完备是呀?如何行事?能处理哪些类型的数?

答:全称是:Android Interface Define Language

以Android中, 每个应用程序都足以发谈得来之进程. 在形容UI应用的时候, 经常要因此到Service. 在不同之进程面临, 怎样传递对象为?显然,
Java中莫允超过进程内存共享.因此传递对象, 只能把对象拆分成操作系统能理解的简练款式, 以达跨界对象看的目的. 在J2EE中,采用RMI的办法, 可以透过序列化传递对象.在Android中, 则采用AIDL的方式. 理论上AIDL可以传递Bundle,实际上做起来也较辛苦。

AIDL(AndRoid接口描述语言)是千篇一律种借口描述语言; 编译器可以经过aidl文件特别成一段代码,通过事先定义的接口及少独过程之中通信进程的目的. 如果急需以一个Activity中, 访问另一个Service中之某对象, 需要事先用对象转化成AIDL可认识别的参数(可能是基本上个参数),然后使用AIDL来传递这些参数, 在信之接收端, 使用这些参数组装成团结要的对象.

AIDL的IPC的建制以及COM或CORBA类似, 是根据接口的,但它们是轻量级的。它采取代理类在客户端和贯彻层间传递值. 如果假定利用AIDL, 需要形成2件作业:
1. 引入AIDL的有关类.; 2.调用aidl产生的class.

AIDL的创造方法:

AIDL语法很简单,可以为此来声称一个拉动一个要多个方法的接口,也足以传递参数与归值。
由于远距离调用的用, 这些参数和归值并无是别类型.下面是几AIDL支持的数据类型:

1. 休需import声明的简短Java编程语言类(int,boolean等)

  1. String, CharSequence不需要特殊声明

  2. List,
    Map和Parcelables类型, 这些类别内所蕴含的数码成员也只能是略数据类型,
    String等其余比支持的类型.

(另外: 我没尝试Parcelables, 在Eclipse+ADT下编译不过, 或许以后会有支持)

27、请说明下Android程序运行时权和文件系统权限的分别。

报:运行时权Dalvik(android授权)

文件系统 linux 内核授权

28、系统上安装了强浏览器,能否指定某个浏览器访问指定页面?请证实原因。

通过一直发送Uri把参数带过去,或者经过manifest里的intentfilter里的data属性 

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&T766游戏网官网和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 dvm的经过与Linux的历程, 应用程序的历程是否为和一个定义

报经:DVM指dalivk的虚拟机。每一个Android应用程序都以它们好的历程被运行,都富有一个独门的Dalvik虚拟机实例。而诸一个DVM都是当Linux 中之一个历程,所以说可当是与一个定义。

31、sim卡的EF文件是啊?有哪打算

报:sim卡的文件系统有好专业,主要是为与手机通讯,sim本
身可以出温馨的操作系统,EF就是犯存储并跟手机通讯用之

32、嵌入式操作系统内存管理有哇几种植, 各有哪里特征

  页式,段式,段页,用到了MMU,虚拟空间等技术

33、什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?

嵌入式实时操作系统是凭当外界事件或者数发生时,能够经受并盖十足快之进度与拍卖,其拍卖的结果同时能以确定之岁月中来控制生育过程要对处理体系作出迅速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用以工业控制、军事设备、
航空航天等领域对系统的应时间发出苛刻的求,这即用以实时系统。又可分为软实时跟矫健时少种,而android是基于linux内核的,因此属于软实时。

34、一修太丰富之不够消息约占多少byte?

  华语70(包括标点),英文160,160独字节。  

35、有一个一维整型数组int[]data保存之是同一张宽为width,高为height的图纸像素值信息。请写一个算法,将欠图形有的反革命不透明(0xffffffff)像素点的透明度调整也50%。

36、如何将SQLite数据库(dictionary.db文件)与apk文件并发布

解答:可以拿dictionary.db文件复制到Eclipse Android工程中之res
aw目录中。所有在res
aw目录中的文件未会见于缩减,这样好直接领取该目录中的文本。可以将dictionary.db文件复制到res
aw目录中

37、如何用打开res aw目录中之数据库文件?

解答:在Android中不可知直接打开res
aw目录中之数据库文件,而待在次第一破开行时将拖欠公文复制到手机内存还是SD卡的某个目录中,然后又打开该数据库文件。

复制的主导方法是采取getResources().openRawResource方法得到res
aw目录中资源的 InputStream对象,然后拿欠InputStream对象被之数据勾勒副另外的目录中相应文件被。在Android
SDK中可以使SQLiteDatabase.openOrCreateDatabase方法来开辟任意目录中的SQLite数据库文件。

38、DDMS和TraceView的区别?

DDMS是一个程序执行查看器,在中间可以望见线程和库房等消息,TraceView是先后性能分析器

39、java中哪些引用本地语言

好用JNI(java native interface  java 本地接口)接口 。

40、谈谈Android的IPC(进程中通信)机制

IPC是中进程通信的简称,是共享”命名管道”的资源。Android中的IPC机制是以让Activity和Service之间可天天的开展互,故在Android中该机制,只适用于Activity及Service之间的通信,类似于远程方法调用,类似于C/S模式之访。通过定义AIDL接口文件来定义IPC接口。Servier端实现IPC接口,Client端调用IPC接口本地代理。

41、NDK是什么

NDK是有些排列工具的会师,NDK提供了扳平雨后春笋之家伙,帮助开发者迅速的开支C/C++的动态库,并能够自动将so和java 应用打成apk包。

NDK集成了接力编译器,并提供了相应的mk文件与隔离cpu、平台等的距离,开发人员只需要简的改动mk文件就可创造有so

 

 

分类: 【INTERVIEW】

 

好文要顶 关注自己 收藏该文 766游戏网官网 1 766游戏网官网 2

766游戏网官网 3

colife
关注 – 0
粉丝 – 1

 

 

+加关注

0

0

 

 

 

« 上一篇:MYSQL常用操作语句
» 下一篇:面试知识点集中

posted on 2016-05-11
01:47 colife 阅读(3207) 评论(0)  编辑 收藏

 

 

刷新评论刷新页面回去顶部

刊登评论

昵称:

评论内容:

766游戏网官网 4 766游戏网官网 5 766游戏网官网 6 766游戏网官网 7 766游戏网官网 8 766游戏网官网 9

 

 退出 订阅评论

 

[Ctrl+Enter快捷键提交]

 

【推荐】50万执VC++源码:
大型组态工控、电力仿真CAD与GIS源码库
【推荐】极光开发者服务平台,五生意义雷同站集一起
【推荐】腾讯云域名+云解析
限时折扣抓紧抢购
【推荐】阿里云“全民云计算”优惠升级
【推荐】一钟头搭建人工智能应用,让技艺重新易于入门

 

766游戏网官网 10

最新IT新闻:
·  Facebook在巴西生产教学中心:面向企业家与程序员
·  “小朋友”画廊刷屏背后:带您认识有原生力量的WABC和苗世明
·  顺丰控股:将会见认真研讨并积极参与中国铁路总公司的改制
·  Facebook“神童”将跳槽谷歌开发语音助手
年仅21年度
·  西部数据收购云服务公司Upthere
» 重复多新闻…

766游戏网官网 11

流行知识库文章:

·  好这或多或少,你也可以成为美好的程序员
·  写于立志做码农的大学生
·  搭腐化的谜
·  学会思考,而非只有是编程
·  修Shell脚本的顶尖实践

» 复多知识库文章…

 

导航

  • 博客园
  • 首页
  • 联系
  • 订阅
  • 管理
< 2017年8月 >

30

31

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

1

2

3

4

5

6

7

8

9

公告

昵称:colife
园龄:6年4个月
粉丝:1
关注:0

+加关注

统计

  • 随笔 – 62 
  • 文章 – 0 
  • 评论 – 0

搜索

 

 

时因此链接

  • 我之随笔
  • 自之评介
  • 自己的参与
  • 风行评论
  • 自家之标签

 

随笔分类(55)

  • 【ANDROID】(25)
  • 【C&C++】(9)
  • 【INTERVIEW】(5)
  • 【JAVA】(3)
  • 【LINUX】(9)
  • 【RFID】(3)
  • 【WIN32】
  • 【音视频】
  • 【游戏编程】(1)
  • 【杂七杂八】

随笔档案(62)

  • 2016年6月 (8)
  • 2016年5月 (18)
  • 2016年4月 (1)
  • 2015年10月 (2)
  • 2015年5月 (7)
  • 2014年10月 (2)
  • 2014年6月 (17)
  • 2014年5月 (1)
  • 2014年1月 (1)
  • 2013年12月 (5)

 

阅读排行榜

  • 1.
    详解linux下之串口通讯支出(5441)
  • 2.
    常用加密算法概述(3510)
  • 3.
    Android技术面试整理(3207)
  • 4.
    java.util包详解(1954)
  • 5.
    Android多媒体整体架构图(1397)

 

 

Powered by: 
博客园 
Copyright © colife

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注