文档介绍:android高级面试题
怎样修改文件,下面就由X为大家介绍一下的android面试题-简答题文章。
android面试题-简答题篇1
1、在多线程编程这块,我们常常要使用Handler,Thread和Runnable这三个类,那么她们之间的关系你是否搞清楚了呢?
答:Android的CPU分配的最小单元是线程,Handler通常是在某个线程里创立的,因此Handler和Thread就是相互绑定的,一一对应。而Runnable是一个接口,Thread是Runnable的子类。因此说,她俩全部算一个进程。HandlerThread顾名思义就是能够处理消息循环的线程,她是一个拥有Looper的线程,能够处理消息循环。和其说Handler和一个线程绑定,不如说Handler是和Looper一一对应的。最终需要说明的是,在UI线程(根本程)中:mHandler=newHandler;
(newRunnable{
voidrun{
//实施代码...}
});
这个线程其实是在UI线程之内运行的,并没有新建线程。
常见的新建线程的方法是:
Threadthread=newThread;
;
HandlerThreadthread=newHandlerThread("string");
;
2、怎样设定应用程序为系统等级的应用?
答:apk获取system权限;怎样获取以下:
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
:sharedUserId=""这个属性。
,加入LOCAL_CERTIFICATE:=platform这一行
,生成的apk就有修改系统时间的权限了。
第二个方法是直接把eclipse编出来的apk用系统的署名文件署名
:sharedUserId=""这个属性。
。
。首先找到密钥文件,在我ndroid源码目录中的位置是"build/target/product/security",下面的和两个文件。然后用Android提供的Signapk工具来署名,signapk的源代码是在"build/tools/signapk"下,编译后在out/host/Linux-x86/framework下,使用方法为Java- "。
加入android:sharedUserId=""这个属性。经过SharedUserid,拥有同一个Userid的多个APK能够配置成运行在同一个进程中。那么把程序的UID配成,也就是要让程序运行在系统进程中,这么就有权限来修改系统时间了。
只是加入UID还不够,假如这时候安装APK的话发觉无法安装,提醒署名不符,原因是程序想要运行在系统进程中还要有目标系统的platformkey,就是上面第二个方法提到的和两个文件。用这两个key署名后apk才真正能够放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE:=platform其实就是用这两个key来署名。
这也有一个问题,就是这么生成的程序只有在原始的Android系统或是自己编译的系统中才能够用,因为这么的系统才能够拿到和两个文件。要是别家企业做的Android上连安装全部安装不了。试试原始的Android中的key来署名,程序在模拟器上运行OK,不过放到G3上安装直接提醒"Package...hasnosignaturesthatmatchthoseinshareduser",这么也是保护了系统的安全。
3、谈谈Android的IPC(进程间通信)机制
答:Android系统中,每一个应用程序全部是由部分Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不一样的进程中,android的IPC机制也就是Binder机制,Android系统是基于Linux内核的,而Linux内核继承和兼容了丰富的Unix系统进程间通信(IPC)机制,不过,Android系统没有采取上述提到的多种进程间通信机制,而是采取Binder机制,Binder是一个进程间通信机制,它是一个类似于COM和CORBA分布式组件架构,通俗一点,其实是提供远程过程调用(RPC)功效。从英文字面上意思看,Binder含有粘结剂的意思,那么它把什么东西粘结在一起呢?在Android系