Android开发知识-3月13日总结

  1. NDK开发使用什么IDE比较好? 这里Android123推荐使用Visual Studio 2005或更高版本,对于代码管理和显示效果比较出色。

  2. SurfaceView如何截图 ? 使用Linux下标准的Framebuffer无法获取是一片黑色,类似Windows下截取DirectX这样的DMA模式的数据一样,由于SurfaceView在游戏或高实时性画面比较多,Android除了从2.3.3开始新增了一个SurfaceFlinger API用于截图.当然有关OpenGL的截图还可以查看android开发网早期文章,如果你有Root权限截图普通图片通过读取/dev/graphics/fb0即可。

  3. Android模拟器和真机到底性能差异多少? 这里Android开发网提示,模拟器的性能和PC的CPU、RAM有很大的关系,同时默认的模拟器启动时分配的RAM较小,而真机也分为很多层次,比如CPU从ARM11这样单核频率在550MHz左右,也有效率更高的A8、A9双核的,同时真机的RAM也是从256MB到1GB不等,对于实际性能差距mTweak评估可能造成10倍或更高的效率差别。

  4. android开发时项目的包名管理和代码风格,一般考虑到设计模式,这里android123推荐大家有ui、view、service、provider、util、network以及常量const包,对于Java工程的管理和代码优雅性大家应该多参考优秀的开源工程,比如Android自带的apps的代码,看一些设计模式对于项目管理控制都有很大的帮助,尤其是模块化的开发。

  5. 跨进程的数据传输,如果是几个应用协同处理需要跨进程,对于Android平台来说设计一个AIDL服务器比较方便,类似系统的很多服务都是通过getSystemService这样的方式访问server来处理在代码可复用上面和通讯上,类似微软的COM模型,开发者无需关注内部实现曝露出通用的接口即可。