Подтвердить что ты не робот

Как понять структуру каталогов корневого дерева android?

Я загрузил исходный код Android. И я хочу внести некоторые изменения в исходный код, чтобы внедрить некоторые функции, которых в настоящее время не существует. Но проблема здесь в том, что я не могу понять, как организован исходный код, какие файлы можно найти где. Поэтому, если кто-то может помочь мне понять, что это будет очень полезно.

4b9b3361

Ответ 1

Вот короткая версия того, что вы найдете при загрузке источника Android. Я оставлю некоторые второстепенные справочники и углубись в пару важных. В основном, что вы получите (на основе текущего релиза Ice Cream Sandwich), в алфавитном порядке:

  • Bionic - C-runtime для Android. Обратите внимание, что Android не использует glibc, как большинство дистрибутивов Linux. Вместо этого c-библиотека называется bionic и базируется в основном на источниках BSD. В этой папке вы найдете источник для библиотек c-library, math и других основных библиотек времени выполнения.
  • Загрузочный код загрузки и запуска. Некоторые из них являются устаревшими, информация протокола fastboot может быть интересной, поскольку она реализуется загрузчиками в ряде устройств, таких как Nexus.
  • Build - реализация системы сборки, включая все основные шаблоны файлов. Важным файлом здесь является envsetup.sh script, который поможет вам при работе с источником платформы. Запуск этого script в оболочке позволит командам настраивать переменные среды, строить определенные модули и grep в файлах исходного кода.
  • Cts - тесты совместимости. Набор тестов для обеспечения соответствия сборки спецификации Android.
  • Dalvik - исходный код для реализации виртуальной машины Dalvik.
  • Разработка - проекты, связанные с разработкой, такие как исходный код для инструментов sdk и ndk. Обычно это не папка, которую вы касаетесь при работе с платформой для цели.
  • Устройство - код продукта для разных устройств. Это место для поиска аппаратных модулей для различных устройств Nexus, создания конфигураций и т.д.
  • Внешний - содержит исходный код для всех внешних проектов с открытым исходным кодом, таких как SQLite, Freetype и webkit.
  • Рамки - эта папка имеет важное значение для Android, так как содержит источники для фреймворка. Здесь вы найдете реализацию ключевых сервисов, таких как системный сервер, с менеджерами пакетов и действий. Здесь также выполняется много сопоставлений между API-интерфейсами Java и родными библиотеками.
  • Аппаратно-аппаратный исходный код, такой как спецификация и реализация уровня абстракции аппаратного обеспечения Android. Эта папка также содержит ссылку на интерфейсный интерфейс (для связи со стороной модема).
  • libcore - Гармония Apache.
  • libnativehelper - вспомогательные функции для использования с JNI.
  • (Kernel) - не является частью исходной загрузки по умолчанию, но вы можете получить доступ к этому коду либо путем его загрузки вручную, либо путем добавления репозитория в инструмент репо. Содержит источники для версии ядра Linux Linux.
  • Out - вывод сборки будет размещен здесь после запуска make. Структура папки отсутствует /target/product/. В сборке по умолчанию для эмулятора вывод будет помещен в out/target/product/generic. Здесь вы найдете изображения, используемые эмулятором для запуска (или для загрузки и воспроизведения на устройстве, если вы строите аппаратную цель).
  • Пакеты - содержит исходный код для приложений по умолчанию, таких как контакты, календарь, браузер.
  • Prebuilt - содержит файлы, которые распределены в двоичной форме для удобства. Примеры включают перекрестные компиляции для разных машин разработки.
  • Система - файлы исходного кода для базовой системы Android. Это минимальная Linux-система, которая запускается до появления виртуальной машины Dalvik и всех сервисов на основе java. Это включает исходный код для процесса init и по умолчанию init.rc script, которые обеспечивают динамическую конфигурацию платформы.
  • tools - Различные инструменты IDE.

Помимо вышеизложенного вы также имеете скрытый каталог .repo, который содержит источник утилиты repo. Он также содержит манифест, определяющий, какие репозитории git вы хотите отслеживать для этого проекта с Android-источником. Если у вас есть собственные дополнения, вы можете автоматически отслеживать их, добавив здесь локальный манифест.

Для модификаций платформы есть некоторые инструкции, доступные в папке device/sample в дереве исходного кода. Это покажет вам, как добавлять API на Android без изменения основной структуры.