前言
好久不见,甚是想念。各位朋友们,我又携带着最受大家欢迎的面试题回来了,可能会有朋友要问了:哎呀,你咋不更了,这不是上次那一份资料用完了嘛,这不,我又厚着脸皮去问我们公司的主管:Boss,给我份面试题呗。Boss瞥了我一眼,冷笑了一下就不做声了,最终在我答应带他上白银,他才拿了这份资料给我٩(๑❛ᴗ❛๑)۶老规矩:一天20题,喜欢的朋友点个关注就不会错过我的更新了,关注我,带你装*,带你飞。
文末有福利!!!
61.如何将SQLite数据库(dictionary.db文件)与apk文件一起发布
把这个文件放在/res/raw
目录下即可。res\raw
目录中的文件不会被压缩,这样可以直接提取该目录中的文件,会生成资源id
。
62.什么是 IntentService?有何优点?
IntentService
是 Service
的子类,比普通的 Service
增加了额外的功能。先看 Service 本身存在两个问题:
Service
不会专门启动一条单独的进程,Service
与它所在应用位于同一个进程中;
Service
也不是专门一条新线程,因此不应该在Service
中直接处理耗时的任务;
IntentService 特征
会创建独立的 worker
线程来处理所有的Intent
请求;
会创建独立的 worker
线程来处理onHandleIntent()
方法实现的代码,无需处理多线程问题;
所有请求处理完成后,IntentService
会自动停止,无需调用 stopSelf()
方法停止 Service
;
为Service
的 onBind()
提供默认实现,返回 null
;
为 Service
的 onStartCommand
提供默认实现,将请求Intent添加到队列中;
63.谈谈对Android NDK的理解
NDK
是一系列工具的集合.NDK
提供了一系列的工具,帮助开发者快速开发C或C++的动态库,并能自动将so和java应用一起打包成apk
.这些工具对开发者的帮助是巨大的.NDK
集成了交叉编译器,并提供了相应的mk
文件隔离CPU,平台,ABI
等差异,开发人员只需要简单修改 mk
文件(指出"哪些文件需要编译","编译特性要求"等),就可以创建出so.
NDK
可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作.NDK
提供了一份稳定,功能有限的API头文件声明.
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API.从该版本的NDK
中看出,这些 API支持的功能非常有限,包含