您的位置:首页 > 移动开发 > Android开发

使用AndroidStudio进行系统应用开发

2017-10-14 22:03 357 查看
在我们进行Android系统app开发时,我们常常会苦恼于:

- 不能在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.pk8platform.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接口可编译情况

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 应用 jar
相关文章推荐