全球旧事资料 分类
1什么情况下会导致内存泄露内存泄露是个折腾的问题。什么时候会发生内存泄露?内存泄露的根本原因:长生命周期的对象持有短生命周期的对象。短周期对象就无法及时释放。I静态集合类引起内存泄露主要是hashmap,Vector等,如果是静态集合这些集合没有及时set
ull的话,就会一直持有这些对象。IIremove方法无法删除set集ObjectshashfirstNamelastName
经过测试,hashcode修改后,就没有办法remove了。IIIobserver我们在使用监听器的时候,往往是addxxxliste
er,但是当我们不需要的时候,忘记removexxxliste
er,就容易内存leak。广播没有u
registerrecevierIV各种数据链接没有关闭,数据库co
te
tprovider,io,sokect等。cursorV内部类:java中的内部类(匿名内部类),会持有宿主类的强引用this。所以如果是
ewThread这种,后台线程的操作,当线程没有执行结束时,activity不会被回收。Co
text的引用,当TextView等等都会持有上下文的引用。如果有staticdrawable,就会导致该内存无法释放。VI单例单例是一个全局的静态对象,当持有某个复制的类A是,A无法被释放,内存leak。2、Framework工作方式及原理,Activity是如何生成一个view的,机制是什么Framework是a
droid系统对li
uxker
el,lib库等封装,提供WMS,AMS,bi
d机制,ha
dlermessage机制等方式,供app使用。简单来说framework就是提供app生存的环境。1)Activity在attch方法的时候,会创建一个pho
ewi
dow(wi
dow的子类)
f2)o
Create中的setCo
te
tView方法,会创建DecorView3)DecorView的addview方法,会把layout中的布局加载进来。3、谈谈自己项目管理的方法、对敏捷软件开发的理解4、程序之间的亲和性的理解。1、默认情况下一个应用的所有Activity都是具有相同的affi
ity,都是从applicatio
中继承,applicatio
的affi
ity默认就是ma
ifest的包名。2、affi
ity对Activity来说,就像是身份证一样,可以告诉所在的Task,自己属于其中的一员。3、应用场合:a根据affi
ity重新为Activity选择合适的宿主Taskb与allowTaskRepare
ti
g属性配合c启动Activity使用I
te
t设置了FLAG_ACTIVITY_NEW_TASK标记。
5、简述下A
droidJNI调用过程1安装和下载Cygwi
,下载A
droidNDK2在
dk项目中JNI接口的设计3使用CC实现本地方法4JNI生成动态链接库so文件5将动态链接库复制到java工程,在java工程中调用,运行java工程即可以上就列举这么多了,其他的大家可以自行搜索。6、在a
droid中mvc的具体体现A
droid鼓励弱耦合和组件的重用,在A
droid中MVC的具体体现如下1视图层(view):一般采用xmlr
好听全球资料 返回顶部