Обычные приложения можно разрабатывать непосредственно с помощью Android Studio. Если вы хотите разработать системное приложение и обеспечить его отладку на целевой машине, вам необходимо решить следующие проблемы:
- Вызов API, скрытых Google
- Используйте API и разрешения системного уровня.
- Включите разработанное приложение для запуска на целевом компьютере.
В этой статье описано, как настроить среду разработки Android Studio для решения проблемы 1.
Решения проблем 2 и 3 можно найти в статье: https://blog.csdn.net/cxq234843654/article/details/51557025 .
Версия среды разработки: compileSdkVersion 27, Android Studio 3.3.
1. Получите пакет Jar Framework с удаленным тегом атрибута @hide.
Этот шаг необходимо выполнить в среде Linux:
- Удалите тег @hide, связанный с API, в исходном коде Android.
- Скомпилируйте исходный код Android
- Получите сгенерированный пакет Framework Jar (classes-full-debug.jar) и переименуйте его в framework.jar.
2. Настройте свойства проекта Android Studio.
- Скопируйте файл framework.jar, полученный на предыдущем шаге, в папку \app\libs в каталоге проекта.
- В структуре каталогов проекта щелкните правой кнопкой мыши и выберите «Добавить как библиотеку», чтобы добавить пакет в переменную среды.
- В структуре каталогов Android откройте файл build.gradle проекта и добавьте следующий контент в модуль allprojects:
allprojects {
repositories {
// 省略无关内容
}
// 需要添加的内容
gradle.projectsEvaluated {
tasks.withType(JavaCompile){
options.compilerArgs.add('-Xbootclasspath/p:app/libs/framework.jar')
}
}
}
- В структуре каталогов Android добавьте следующее содержимое в первую строку зависимой библиотеки в файле build.gradle приложения, чтобы предотвратить проблему выхода за пределы массива, вызванную двумя наборами платформ.
dependencies {
// 需要添加的内容
compileOnly files('libs/framework.jar')
// 省略无关内容
}
- В структуре каталогов проекта измените приоритет вызова Framework.jar в app/app.iml и поместите в конец следующее определение порядка системного SDK:
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
После выполнения вышеуказанных 5 шагов вы можете использовать Android Studio для разработки системного приложения.
Шаг 5 иногда не работает, потому что при синхронизации gradle автоматически переходит к первому шагу. Однако это не влияет на компиляцию, но для отчетов об ошибках будет красная линия, и эти API не могут быть завершены автоматически.
Справочная статья:
http://www.cnblogs.com/startkey/p/10042194.html .