Android FAE工程师要求,使用AndroidStudio进行系统应用开发

在我们进行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

c22fac5ca8f694925f4b10986f52736b.png

打开Project Structure来设置引入的jar包属性,使jar参与编译,但是不打入到apk中

9aa1202e498e4c59f8f1cf16826f4101.png

如果是AndroidStudio2.3.3则设置引入的jar为Provided

6ea0f33ddcb5a69292cf1e863e139097.png

如果是AndroidsTudio3.0的则设置引入的jar为Compile only

a26ac36e53f3ce2d090e34ff744027ef.png

修改整个项目下的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前面1c6f18a2fc552befe6d83d8e63919b19.png获取系统签名证书需要使用工具keytool-importkeypair来生成app的签名证书下载地址

将其zip包下载下来,可以得到脚本keytool-importkeypair

在linux环境下使用chmod 777 keytool-importkeypair,赋予脚本权限

fce743f055b1190adb6a5203d576c6d0.png

进入目录**/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

edba767f1041b2a9ff4cc4a4d9f635af.png

从而得到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        }

}

755ec6047e5daf28010e68c73ab07018.png

好了这样就可以直接运行啦~~~ps:如果引入的jar运行错误,要注意编译环境的jdk与AndroidStudio的jdk对应;如果还不行(我是在Android7.1源码环境、OpenJdk1.8编译),则可以尝试安装Android Studio3.0

下图是调用系统hide接口可编译情况

4ab41a379280ca5c9e39ad860f8528a5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值