对于Android Framework层的学习,在上一次的 Android框架层学习指导 中我们已经讲到了基础的结构和定义,但是对于Framework层的核心还有哪些呢? 1. 在Android源码的base中,我们可以看到每个目录进去,都会有java和jni两个文件夹,后者对于初入android框架的学习十分有帮助,如果你刚开始了解NDK和JNI相关的不妨读读Google的代码,这对于代码风格和质量的提高都很有帮助。 2. 对于NDK和JNI来说,编译我们需要一个好的环境,这里还是推荐基于Unix架构的Linux或Mac OS编译,Android123推荐放弃Windows下的Cygwin和MingWin可以节省不少的时间,对于编译来说先掌握mk文件的结构比较重要,这里可以直接查看base目录中每个jni子目录的android.mk文件即可,在Linux下mk文件这种脚本方式对于过去一些Visual Studio用惯的可能感觉有些原始。 3. 当然学习Android Framework可以帮助改进系统,定制自己的固件,部分核心的库是独立的external包,比如说 SQLite、Webkit、zlib、libpng这些Android使用第三方开源的库都是在platform/external/xxx.git中。xxx代表最终的库名。 4. 对于部分的核心库,上次我们在Android框架层学习指导一文中由于篇幅并没有提到,其实在base目录下面的native中可以看到很多系统结构的定义和实现。Android开发网推荐深入掌握Android这个namespace中的所有结构,这样的基础是十分必要的。 5. 最后我们附上Base目录的结构图,希望对大家有用: ├─api├─build├─cmds│ ├─am│ │ └─src│ │ └─com│ │ └─android│ │ └─commands│ │ └─am│ ├─app_process│ ├─backup│ ├─bmgr│ │ └─src│ │ └─com│ │ └─android│ │ └─commands│ │ └─bmgr│ ├─bootanimation│ ├─bugreport│ ├─dumpstate│ ├─dumpsys│ ├─ime│ │ └─src│ │ └─com│ │ […]
二
保护你的Android付费软件-LVL全攻略(二) Android开发技术
昨天我们介绍了Android Market新的付费软件保护机制-LVL我们今天一起来看看如何集成密钥以及LVL库到Android项目中,这样做目前可以有效保证及时是Root权限的设备也无法正常的使用。 1. 在项目的androidmanifest.xml文件中加入<uses-permission android:name="com.android.vending.CHECK_LICENSE">权限,使其Market客户端可以检测授权状态。 2.制定一个策略Policy,本质上 Android Market licensing 服务并没有判断给用户赋予什么样的权限,在Policy接口中提供了两个方法分别为allowAccess() 和 processServerResponse() 他们均被 LicenseChecker 从服务器响应权限信息明确时被回调。 processServerResponse() 的原始定义 lets you preprocess the raw response data received from the licensing server, prior to determining whether to grant access. allowAccess() 的解释为determines whether to grant the user access to your application, based on any available license response data (from the […]

