Компиляция пакета Android из Google git repo - PullRequest
0 голосов
/ 13 мая 2011

Я пытаюсь получить определенный пакет (Launcher2) из ​​репозитория git git и скомпилировать его. Планирую изменить несколько вещей и создать свой. После установки Git я использовал это, чтобы получить исходный код из тега 2.2 SDK:

git clone https://android.googlesource.com/platform/packages/apps/Launcher2 launcher2
git checkout android-sdk-2.2_r2

После того, как все сделано и файлы существуют, я создаю новый проект Android в Eclipse, выбираю целевую платформу 2.2 и отмечаю «использовать существующий источник». Проект открывается, но со многими ошибками компиляции, такими как неверный импорт и нераспознанные поля и так далее ... Похоже, что источник у меня не соответствует структуре. Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 08 мая 2012

Аааа ... Но вы знаете, что если у вас есть весь репозиторий и дерево устройств, вы можете собрать только один пакет. Предположим на мгновение, что ваша среда основана на Linux, и что ваша телефонная трубка - это Samsung i9000 (Galaxy S), тогда в дереве исходных текстов у вас будет device / samsung / galaxys , который содержит проприетарные библиотеки и дополнительный код относится только к оборудованию для Samsung i9000.

Тогда нужно сделать это как разовую операцию -

. build/envsetup.sh

lunch

Выберите Samsung Galaxy s из меню обеда. Сложность в том, чтобы трубка вашего устройства появлялась в меню обеда!

make -jX 

(замените X на соответствующее количество ядер в вашем процессоре)

Весь ваш system.img / boot.img будет храниться в out / target / product / samsung / galaxys через пару часов, в зависимости от скорости вашей машины / среды.

Теперь, чтобы создать один пакет, вы просто вводите это:

make Launcher2

Теперь у вас будет новое приложение для Android под названием Launcher.apk, которое будет храниться в каталоге out / target / product / samsung / galaxys / system / app .

Как?

Просто, когда после выполнения ланча ', и вызвать эту команду

make modules > modules_list.txt

Полученный результат будет содержать имена модулей в этом файле modules_list.txt , которые могут быть встроены в командную строку - модули в контексте всего исходного дерева AOSP, это может быть ( статическая | общая) библиотека, собственный исполняемый файл или даже Android-приложение для Android.

Теперь не пытайтесь очистить все дерево out / (даже если это может поглотить много места), оставьте его там, чтобы ускорить процесс сборки отдельных модулей.

Если вы действительно хотите удалить их, введите следующее:

make clean && make clobber

и весь каталог out / удален и ушел навсегда.

0 голосов
/ 04 июля 2011

если вы хотите скомпилировать в Eclipse, вы не сможете.Потому что он использует внутренние классы (com.android.internal. *) И частные API.

См. Launcher 1 (до Android 2.1): http://code.google.com/p/android-launcher-for-sdk/

В противном случае вы можете посмотреть наисходный код ADW Launcher 2, который основан на Launcher2.Вы увидите изменение, сделанное для соответствия общедоступным API

...