1,intent 的机制和 handler 机制有什么相似之处?为什么会有 handler 机制,为什么安卓
会有 intent 这个东西?
答: intent 可以用来解耦,利用 intent 可以启动 activity ,service ,broadcast 。intent
就像是 Handler 发了一消息,然后系统根据消息器做某些事情。
Handler 的出现就是为了解决在主线程做耗时操作。
2,activity 是用什么管理的?
答: Activity 是用 ActivityManager 管理的。每个进程或者应用的界面用任务栈来管理。
3,onNewIntent 什么时候执行?
答案:提示:界面的启动模式是 singleTop singleTask 的时候有可能执行。
四种启动模式的不同: standard 每次创建一个, singleTop 只有一个在最上面, 解决了栈顶
复用,有了实例就调用 onNewIntent ;singleTask ,如果没有实例,则创建新的任务栈,放
入栈底,如果有了调用 onNewIntent ,其他的必须出栈,一个应用中共享一个 activity 。
singleInstance 创建一个新栈,里面只有一个,解决多个应用共享一个 activity
4,activity 退到后台,当 activity 被干掉的时候,从最近启动列表点击进入,能不能重
新启动?
答案:不能重新启动,界面被杀掉了
涉及到 java 的内存管理机制:当内存不足时,根据进程的优先级杀死相对应的进程,
LowMemoryKiller 在 linux 里面实现,前台进程 -- 可见进程 -- 服务,内容提供者 -- 后台进程
-- 空进程
空进程:不提供服务和内容,为了下次启动更快一点。
5,scrollview 里面能不能嵌套 listview ,会有什么问题出现?
答案: 可以嵌套, listview 显示不全, 只显示一行; 安卓不建议使用, 因为里面的 listview
的高度无法得; listview 无法滑动,因为被外面的 scrollveiw 父控件吃掉了。
解 决 办 法 : 1 , 计 算 每 个 item 的 高 度 , 调 用 measure 计 算 , 让 后 用
view.setParams(ViewGroup.Params.height), 注意:每个 item 必须是 linearlayout, 因为
其他布局没有重写 onMeasure 方法,会报错。可用在 item 不同的宽度上
2, 重写 listview 的 ontouchEvent 方法, 当按下的时候拦截 scrollView 的滚动。
6,dp 和 sp 为什么不能互相代替?底层是不是一样的?
答案:不能代替,都用于屏幕适配,一个是文字,一个是其他。底层不一样。
7, 屏幕适配的几种方式?
答案: drawable layout 横屏竖屏 使用 9patch 图片,
1,drawable xhdip ,xxhdip 里面放一些比较重要的图片,
2,在 values dimens.xml 里面,配置不同的 dimen ,对于不同分辨率的屏幕适配不同的 dimen ,
一般不用。
3,使用 9patch 图片,里面不能编辑,四周可以。 拉伸水平或者竖直方向的两个点所对应的
像素。四个角上是透明的像素,并且可以等比例放大。
8,NDK JNI,的使用,生成 so 文件,怎么生成。
答案:。。。。
9,图片加载,什么图片加载到 SD卡中。点击 item 条目的时候,图片存不存?
答案:存放,节省流量;滑动的时候,不加载图片,停止滑动的时候加载可见的 item 的图
片,节省流量;
服务器更换图片,地址也变, SD卡就会同步的变化。