使用AndroidStudio进行系统应用开发
2017-10-14 22:03
357 查看
在我们进行Android系统app开发时,我们常常会苦恼于:
- 不能在AndroidStudio中调用系统定制API
- 不能通过AndroidStudio直接运行app
那么要解决这两个问题,我们需要做些准备:
-通过系统编译带有定制API的JAR包
-使AndroidStudio引用相应JAR包
-获取系统签名证书
-使AndroidStudio引用签名证书生成app
进入/frameworks/base执行mm命令,编译生成framework.jar
进入/out/target/common/obj/
JAVA_LIBRARIES/framework_intermediates
获取classes-full-debug.jar
打开Project Structure来设置引入的jar包属性,使jar参与编译,但是不打入到apk中
如果是AndroidStudio2.3.3则设置引入的jar为Provided
如果是AndroidsTudio3.0的则设置引入的jar为Compile only
修改整个项目下的build.gradle文件,在allprojects节点下添加
Xbootclasspath/p表示编译时引用该路径下的jar包
修改该工程下的iml文件,将我们的jar包移动到SDK前面
将其zip包下载下来,可以得到脚本keytool-importkeypair
在linux环境下使用chmod 777 keytool-importkeypair,赋予脚本权限
进入目录/build/target/product/security,获取platform.pk8、platform.x509.pem系统签名需要的文件
执行命令
./keytool-importkeypair -k system_app_debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
从而得到app的系统签名证书
system_app_debug.keystore
别名alias为platform,密码android
修改当前工程下的build.gradle文件,在android节点下添加
好了这样就可以直接运行啦~~~
ps:如果引入的jar运行错误,要注意编译环境的jdk与AndroidStudio的jdk对应;如果还不行(我是在Android7.1源码环境、OpenJdk1.8编译),则可以尝试安装Android Studio3.0
下图是调用系统hide接口可编译情况
- 不能在AndroidStudio中调用系统定制API
- 不能通过AndroidStudio直接运行app
那么要解决这两个问题,我们需要做些准备:
-通过系统编译带有定制API的JAR包
-使AndroidStudio引用相应JAR包
-获取系统签名证书
-使AndroidStudio引用签名证书生成app
获取定制API的JAR包
以framework.jar为例(如果编译生成SDK则可以不需要这一步)进入/frameworks/base执行mm命令,编译生成framework.jar
进入/out/target/common/obj/
JAVA_LIBRARIES/framework_intermediates
获取classes-full-debug.jar
引用framework.jar
打开AndroidStudio,进入Project Structure将jar包放到libs目录下,右击jar选择Add As Library打开Project Structure来设置引入的jar包属性,使jar参与编译,但是不打入到apk中
如果是AndroidStudio2.3.3则设置引入的jar为Provided
如果是AndroidsTudio3.0的则设置引入的jar为Compile only
修改整个项目下的build.gradle文件,在allprojects节点下添加
gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs.add('-Xbootclasspath/p:/Users/mac/Documents/MyApplication/test_appops/libs/classes-full-debug.jar') } }
Xbootclasspath/p表示编译时引用该路径下的jar包
修改该工程下的iml文件,将我们的jar包移动到SDK前面
获取系统签名证书
需要使用工具keytool-importkeypair来生成app的签名证书下载地址将其zip包下载下来,可以得到脚本keytool-importkeypair
在linux环境下使用chmod 777 keytool-importkeypair,赋予脚本权限
进入目录/build/target/product/security,获取platform.pk8、platform.x509.pem系统签名需要的文件
执行命令
./keytool-importkeypair -k system_app_debug.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
从而得到app的系统签名证书
system_app_debug.keystore
别名alias为platform,密码android
使AndroidStudio引用签名证书
将system_app_debug.keystore放入工程目录下修改当前工程下的build.gradle文件,在android节点下添加
signingConfigs { release { storeFile file("Users/mac/Documents/MyApplication/test_appops/system_app_debug.keystore") storePassword 'android' keyAlias 'platform' keyPassword 'android' } debug { storeFile file("Users/mac/Documents/MyApplication/test_appops/system_app_debug.keystore") storePassword 'android' keyAlias 'platform' keyPassword 'android' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } }
好了这样就可以直接运行啦~~~
ps:如果引入的jar运行错误,要注意编译环境的jdk与AndroidStudio的jdk对应;如果还不行(我是在Android7.1源码环境、OpenJdk1.8编译),则可以尝试安装Android Studio3.0
下图是调用系统hide接口可编译情况
相关文章推荐
- 使用Eclispe进行Android系统应用的开发和调试 推荐
- 使用JBoss Eclipse IDE 开发J2EE应用系统
- [转]使用 VS2010 在 SQL 2008 R2 上进行应用开发
- 使用 VS2010 在 SQL 2008 R2 上进行应用开发 (1)
- 使用DeeepZoom Composer进行富图像应用的开发(翻译--2)
- SQL2000系统表、存储过程、函数的功能介绍及应用2009年01月21日 星期三 11:38虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL
- 一个使用敏捷开发平台构建的应用系统
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中的委托与应用
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA应用中使用IOC解偶数据连接环境
- 使用DeeepZoom Composer进行富图像应用的开发(翻译--1)
- 使用DeeepZoom Composer进行富图像应用的开发(翻译--完)
- 使用C#进行基于PI的开发(三)——应用PISDK和PIAPI从PI数据库读取数据
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA中处理事务
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-涉及的数据定义
- 使用VSS进行.net平台Win系统及Web系统的团队开发
- 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作
- 使用 Java 进行 MySQL 开发 (摘自:MySQL for Linux on POWER,第 2 部分: 开发应用)
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
- Windows Mobile, WinCe使用 .NET Compact Framework 进行3G和RAS应用的开发