31. 请解释下Android程序运行时权限与文件系统权限的区别。
Android程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 打电话,访问网络,获取坐标,写sd卡,读写联系人等..安装的时候会提示用户…
-rw------ 私有权限 -rw-rw-rw-全局可读可写 linux系统的文件权限
文件系统的权限是linux权限. 比如说sharedpreference里面的Context.Mode_private
Context.Mode.world_read_able Context.Mode_world_writeable
777自己 同组 其他
root 是危险的行为
32. 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
Intent .setAction(VIEW)
setData("http://")
找到对应的浏览器的意图,传递数据URI , 激活这个意图
Intent intent = new Intent();
// com.android.browser/.BrowserActivity
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
Intent.setdata(uri);
queryintentactivity(); 推广自己产品的操作
33. 对android主线程的运用和理解。
主ui线程不能执行耗时的操作,
34. 对android虚拟机的理解,包括内存管理机制垃圾回收机制。
虚拟机很小,空间很小,谈谈移动设备的虚拟机的大小限制默认 16M
谈谈加载图片的时候怎么处理大图片的,
垃圾回收,没有引用的对象,或者是离开作用空间 ,在某个时刻会被系统gc掉.
System.gc(); 不是立刻去执行垃圾回收.
Moblietv 获取300 30K 频道.icon gallery
手机电视. 视频点播. Onstop() 通知gc();
别的界面图片 白板.
遇到一个不可复现的bug, 不解决 won'tfix
乐观锁 悲观锁
35. Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。
反射 , 配置文件
控制反转.
可以讲下activity的源码,比如说 每个activity里面都有window.callback和keyevent.callback,一些回调的接口或者函数吧. 框架把activity创建出来就会调用里面的这些回调方法,会调用activity生命周期相关的方法.
setContentView();
普通的情况:
Activity创建一个view是通过ondraw 画出来的, 画这个view之前呢,还会调用onmeasure方法来计算显示的大小.
Surfaceview 直接操作硬件 opengl .GLSurfaceView
图像要想被显示到界面上, 需要设备显卡, 显存.
写到显存.
Mediaplayer
Opengl
直接把数据写到显存.
36. android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
这个问题问的有问题, apk包大小限制不好说,
极品飞车有100M 还是能装到手机上,
// apk 资源文件素材.
世面google market 上大程序 主程序 很小 5~10M 下载sdcard
15分钟之内 申请退款
apk包,精简包, 素材存放在服务器. 游戏程序.
读大文件的时间限制应该是main线程里面的时间限制吧5秒.
Broadcast 10秒
Service 20秒
37. 如何加载的音乐信息,如何改善其效率。
MP3播放器. 遍历sd卡的mp3
Mp3 作者信息 专辑 图片 歌词信息 id3id3v1 id3v2
Android提供mediascanner,mediaStore等接口,音乐文件的信息都会存放到系统的数据库表中,可以通过content provider获取,
显示出来,改善效率,是个常见问题, 可以从以下几个方面作答,
分批加载数据, 延时加载数据, 合理使用缓存等...
Java虚拟机, 目标, 加快java程序执行速度
预先加载一些 都会的使用的大的class的字节码, 提前加载.
时间换时间
空间换时间
38. ListView如何提高其效率?
复用convertview, 历史的view对象
异步加载数据, 分页加载数据, onscallLinster();
Staticclass ViewHolder
使用静态的view对象 避免创建过多的view.
把下载后的数据缓存到数据库里
客户端和服务器 协同 作战 .
Http 请求
If-modify-since: 检查数据是否更新 1.html 2001年 302 拿缓存
网易新闻
39. 启动应用后,改变系统语言,应用的语言会改变么?
会
40. 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
区别是根据activity在manifest里面的配置,这个activity可能会放在不同的task栈里面
intent设置的flag flag_activity_new_task