Android 系统应用 注意的那些事
2016-03-01 14:04
274 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_33991204/article/details/50772103
系统应用主要还是要有系统权限,通过这个应用来完成其他第三方app不能完成的事情,比如调用手机硬件以及系统内部中没有被封装成api的内部类,类似于各个手机中都有的工厂测试,mms,Camera等等。其实只要你了解整个手机系统framework层和hal层,有的都可以通过反射机制以及native方法来实现。
系统应用一般都要在系统下编译生成apk,通过预安装的方法安装在系统中,这个需要方案公司来进行做这个,我们仅仅是开发app的话就不需要了。平常在调试的时候都是通过adb进行安装,但是要注意一点就是adb安装一定要注意权限问题,因为系统应用安装的话需要手机的system权限,所以我们都是用开发版的手机来调戏系统应用的。
下面来讲讲权限问题,Android中有很多权限,你访问网络、进行读写短信和电话记录还有进行一个system属性的读写都需要大量的权限,这些权限都是在android.premmison.xxxxxx,这个网上有很多。其中要让app获取系统权限的话,都要在AndroidManifest.xml中的manifest节点中加入 android:sharedUserId="android.uid.system"。这样就获取到系统的权限,下面你就可以调用系统中的东西开始为所欲为了,嘿嘿嘿。。。
接着就是开发自己的app移植到系统中编译所遇到的问题。首先就是在Android 源码下的package/app下面创建一个应用包名然后就是Android.mk文件的书写,一般的书写方式都基本一样,只不过因为app名字的变化module名会变一下。然后提取自己的src的java文件和res资源文件以及AndroidManifest.xml文件到该报名下。就这在系统下进行编译生成apk即可。如果有出错就可以的,可以自己查看log分析。
如果也要你预制的话,也可以预制到系统rom中,进行刷机即可看到,只不过这样调戏不方便,不推荐使用。
下面针对上面所讲的命令以及书写方式简单说一下:
1、adb 安装命令
adb install -r 文件路径
adb push 文件路径 目的路径(比如 system/app|pri_app)
2、Android.mk的简单书写
系统应用一般都要在系统下编译生成apk,通过预安装的方法安装在系统中,这个需要方案公司来进行做这个,我们仅仅是开发app的话就不需要了。平常在调试的时候都是通过adb进行安装,但是要注意一点就是adb安装一定要注意权限问题,因为系统应用安装的话需要手机的system权限,所以我们都是用开发版的手机来调戏系统应用的。
下面来讲讲权限问题,Android中有很多权限,你访问网络、进行读写短信和电话记录还有进行一个system属性的读写都需要大量的权限,这些权限都是在android.premmison.xxxxxx,这个网上有很多。其中要让app获取系统权限的话,都要在AndroidManifest.xml中的manifest节点中加入 android:sharedUserId="android.uid.system"。这样就获取到系统的权限,下面你就可以调用系统中的东西开始为所欲为了,嘿嘿嘿。。。
接着就是开发自己的app移植到系统中编译所遇到的问题。首先就是在Android 源码下的package/app下面创建一个应用包名然后就是Android.mk文件的书写,一般的书写方式都基本一样,只不过因为app名字的变化module名会变一下。然后提取自己的src的java文件和res资源文件以及AndroidManifest.xml文件到该报名下。就这在系统下进行编译生成apk即可。如果有出错就可以的,可以自己查看log分析。
如果也要你预制的话,也可以预制到系统rom中,进行刷机即可看到,只不过这样调戏不方便,不推荐使用。
下面针对上面所讲的命令以及书写方式简单说一下:
1、adb 安装命令
adb install -r 文件路径
adb push 文件路径 目的路径(比如 system/app|pri_app)
2、Android.mk的简单书写
例如
</pre><pre name="code" class="html">LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-java-files-under, src) #指向当前目录下的src包 LOCAL_PACKAGE_NAME := 名字 #这个指的就是你的app包名 LOCAL_CERTIFICATE := platform LOCAL_PRIVILEGED_MODULE := true #是否放在pri_app下 LOCAL_JAVA_LIBRARIES += telephony-common #静态链接 include $(BUILD_PACKAGE) # Use the folloing include to make our test apk. include $(call all-makefiles-under,$(LOCAL_PATH))
3、所拷贝的文件如下图所示
后面如果有需要补充的,我会再进行更改。欢迎指教
相关文章推荐
- android 系统应用 开发 注意事项(该版本采用方法效率较高)
- android系统级应用静默升级及注意事项
- Android零基础入门第2节:Android 系统架构和应用组件那些事
- android系统级应用静默升级及注意事项
- 使用intent调用Android系统自带应用
- Android应用程式编译成系统程序
- android手机,如何删除系统应用
- Android 系统应用调用,intent的使用总结
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- 使用intent调用Android系统自带应用
- IIS做android应用下载服务器注意事项
- android 调用系统应用
- 【Android】调用系统应用常用uri & intent设置
- 应用系统切换到mysql应注意的
- WindRiver开发出Android系统多应用窗口显示
- 获取应用的当前版本号&获取当前android系统的版本号
- Android多线程之Handler、Looper、Message在基于HTTP系统中的应用
- Android系统内置应用更新或升级后被还原的原因
- Android 系统应用调用,intent的使用
- Android 系统应用调用,intent 的使用总结