Как импортировать приложения AOSP (запуск, контакты,...) в Android-Studio?
Задний план
В Google есть сайт для всех приложений AOSP, в том числе его запуска, контакты и т.д....
Проблема
Я хотел бы знать, как импортировать эти приложения. Более конкретно, приложение для запуска и приложений для контактов (хотя я также хотел бы узнать о других).
Дело в том, что это не так просто. Вы не можете просто импортировать клонированный проект и его. Даже если вы используете Eclipse (который кажется официальным инструментом, используемым в этих репозиториях, в соответствии с hirerchy папок), это не работает так же легко.
Что я нашел
Я нашел старое сообщение о том, как импортировать пусковую установку (версия 4.4.x), но с использованием Eclipse, и я думаю, что Linux должен создавать некоторые файлы.
Я пытался импортировать с помощью Eclipse, но по какой-то причине я не мог использовать рабочую библиотеку "protobuf". Я попытался использовать банку здесь, но это не удалось импортировать.
Существует также хорошая сторонняя библиотека, у которой есть импортированная версия приложения для запуска, но в настоящее время она немного отстает, поскольку она основана на Kitkat (4.4), а не на Lollipop (5.0).
Вопрос
Как импортировать эти проекты? Есть ли простой способ? Будет ли он работать даже в ОС Windows и Android Studio?
Ответы
Ответ 1
Как импортировать эти проекты?
Вы просто клонируете свои репозитории git. Однако единственным способом их компиляции будет все проект AOSP.
Попытка скомпилировать приложение без него невозможна из-за уродливого сочетания:
1.Зависимости с другими проектами AOSP
2. Использование скрытых API, которые недоступны для обычного приложения (эти приложения были разработаны как системные приложения с дополнительными API). Эти APIS даже не существуют в SDK.
3. Использование Android.mk с хаками, которые нельзя использовать с Gradle или даже с плагином eclipse.
Есть ли простой способ?
Нет. Для Launcher его несколько дней работы, для контактов легче начать с нуля.
Будет ли он работать даже в ОС Windows и Android Studio?
Не без особых усилий.
Еще одна вещь: приложения, которые вы видите в устройствах Nexus, не являются результатом компиляции кода, загружаемого с веб-сайта Google. Их приложения проходят множество циклов обновления и QA, в то время как то, что вы скомпилируете, приведет к очень плохому продукту, который потребует интенсивного обслуживания.
Мое предложение состоит в том, чтобы искать действительно открытые исходные приложения и не рассчитывать на добрую волю Google.
Ответ 2
Вот еще один подход. Приложения AOSP предназначены для "родных", сначала вы должны подумать, что это значит? Это на самом деле означает, что они предназначены для компиляции с помощью команды "мм" после выполнения envsetup и обеда в вашем основном каталоге AOSP. Также обратите внимание, что Android.mk для каждого приложения (находящегося в aosp/packages/apps) компилирует файл для хранения в папке /system/app на вашем конечном изображении. Так что да, этот подход затрудняет импорт в AndroidStudio, потому что в этом типе компиляции отсутствует система построения градиента AndroidStudio, которая фактически работает совершенно по-другому.
Другие проблемы, с которыми вы можете столкнуться: - Поскольку приложение Native AOSP работает в режиме реального времени в системе Android и скомпилировано с оптимизацией odex, они могут создавать проблемы при попытке установить любую производную работу, если вы не измените имена модулей и имя приложения в файле AndroidManifest.
Одно простое решение: просто запустите новый проект Android Studio и импортируйте соответствующие классы и ресурсы java из aosp в свой проект. Я знаю, что это звучит как "ленивое" решение, но все же, используя этот подход, вы должны по-разному назвать свое приложение (другое имя модуля), чем приложение AOSP, чтобы оно не противоречило родному приложению aosp (или любому производному приложению таких как GoogleCamera (который распространяется от AOSP Camera)). Также это настроит среду градиента, необходимую для нормального создания приложений для Android. Надеюсь это поможет.
Ответ 3
Для Launcher3 вы можете посетить https://android.googlesource.com/platform/packages/apps/Launcher3/+/android-6.0.1_r9.
Aosp Launcher3 добавляет файл build.gradle
теперь вы можете просто скопировать общий каталог в рабочий каталог и изменить gradlew
файла gradlew
чтобы он мог его выполнить, а затем использовать ./gradlew clean &&./gradlew build
для сборки Launcher3. Также вам нужно закрыть abortOnError
lint в использовании build.grale
android {
// Other configuration
lintOptions {
abortOnError false
}
}
Примечание. Не изменяйте версию protobuf в build.gradle
, иначе это может build.gradle
процесс сборки.