用Android Studio开发系统App---搭建开发环境
直接使用Android Studio可以开发普通的App,如果要开发系统App并使之能够在目标机上调试,则需要解决以下几个问题:调用被Google隐藏起来的API使用系统级别的API和权限使开发的App能运行在目标机上本篇文章记录如何配置Android Studio开发环境来解决问题1。开发环境版本:compileSdkVersion 27, Android Studio 3.3一...
·
直接使用Android Studio可以开发普通的App,如果要开发系统App并使之能够在目标机上调试,则需要解决以下几个问题:
- 调用被Google隐藏起来的API
- 使用系统级别的API和权限
- 使开发的App能运行在目标机上
本篇文章记录如何配置Android Studio开发环境来解决问题1。
问题2、3的解决请参考文章:https://blog.csdn.net/cxq234843654/article/details/51557025
开发环境版本:compileSdkVersion 27, Android Studio 3.3
一、获取将@hide属性标签祛除的Framework Jar包
这一步要在Linux环境下完成:
- 祛除Android源码中关联API的@hide标签
- 编译Android源码
- 获取生成的Framework Jar包(classes-full-debug.jar),更名为framework.jar
二、配置Android Studio工程属性
- 将上一步获取的framework.jar拷贝到工程目录下的\app\libs文件夹中。
- Project目录结构下,鼠标右击后选择add as library,将包添加到环境变量中。
- Android目录结构下,打开Project的build.gradle文件,在allprojects模块中添加如下内容:
allprojects {
repositories {
// 省略无关内容
}
// 需要添加的内容
gradle.projectsEvaluated {
tasks.withType(JavaCompile){
options.compilerArgs.add('-Xbootclasspath/p:app/libs/framework.jar')
}
}
}
- Android目录结构下,在app的build.gradle中依赖库的第一行添加如下内容,防止两套Framework导致数组越界的问题。
dependencies {
// 需要添加的内容
compileOnly files('libs/framework.jar')
// 省略无关内容
}
- Project目录结构下,在app/app.iml中修改Framework.jar的调用优先级,将如下系统SDK的order定义放到最后面:
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
以上5步完成后就可以使用Android Studio开发系统App了。
第5步有时候不起作用,因为同步gradle时,它会自动跑到第一条。但是不影响编译,只是会有报错的红线,以及这些API无法自动补齐。
更多推荐
已为社区贡献1条内容
所有评论(0)