Android--面试题整理(四)

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

图像要想被显示到界面上, 需要设备显卡, 显存.

写到显存.

 

 

 

36.  android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。

 这个问题问的有问题, apk包大小限制不好说,

 极品飞车有100M 还是能装到手机上,

 

// apk 资源文件素材.

世面google market 上大程序  主程序 很小 5~10M    下载sdcard

15分钟之内 申请退款

apk包,精简包, 素材存放在服务器. 游戏程序.

 

读大文件的时间限制应该是main线程里面的时间限制吧.5秒.

 

37. 如何加载的音乐信息,如何改善其效率。

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_new_task

你可能感兴趣的:(android,面试题)