Используйте Android Studio для импорта исходного кода Android

1. История

В этой статье в основном объясняется, как использовать его для просмотра соответствующей конфигурации исходного кода (этот пример основан на официальном исходном коде инструкций по настройке). В исходном коде Android я обнаружил, что есть каталог development/tools/idegen.Я проверил и обнаружил, что это файл проекта, который генерирует IDE (в основном файл проекта intellij, который на самом деле является Android Studio), поэтому инструмент социального обеспечения выглядит следующим образом. Подробнее см. ниже.

2 Процесс настройки

2-1 Основные приготовления

В первую очередь необходимо установить и настроить Android Studio, а затем скачать исходный код, а как его скачать я здесь объяснять не буду, это относительно просто, достаточно посмотреть на официальном сайте.

Во-вторых, вам нужно убедиться, что исходный код был скомпилирован для создания файлов каталогов, связанных с внешними данными.

Что ж, выше приведены некоторые основные приготовления.Для пользовательского исходного кода или собственного исходного кода эти подготовительные шаги необходимы, поэтому нет необходимости подчеркивать это.

2-2 Импорт и использование конфигурации

2-2-1 Скомпилируйте модуль idegen с исходным кодом и сгенерируйте файл конфигурации AS (*.ipr)

Перед тем, как начать компилировать модуль idegen, вы должны знать, что вам нужно сначала скомпилировать каталог out и связанные файлы глобально, я не буду много говорить об этом, мы собираем модуль idegen с помощью следующей команды:

ммм разработка/инструменты/инопланетянин/

Смысл этой строки команды в том, чтобы скомпилировать проект модуля idegen, а затем сгенерировать файл idegen.jar (если вы мне не верите, идите и проверьте цель Android.mk этого модуля, больше никаких объяснений). Если после запуска вы видите следующую информацию, это означает, что с компиляцией все в порядке:

...... 
#### make успешно завершен (7 секунд) ####
 
 

Затем выполните следующий скрипт:

разработка/инструменты/alien/alien.sh

Эта команда означает создание соответствующих файлов конфигурации проекта android.ipr, android.iml IEDA в корневом каталоге. Подождите некоторое время, чтобы получить сообщение, похожее на следующее, чтобы указать OK:

Чтение исключает: 21 мс 
Пройденное дерево: 194799 мс
 
 

С помощью вышеуказанных операций мы завершили базовую работу по настройке исходного кода.

2-2-2 Некоторые операции по настройке перед импортом в Android Studio

Всем известно, что использование Eclipse для импорта исходного кода происходит очень медленно, и Android Studio тоже тормозит при импорте исходного кода, поэтому рекомендуется изменить файл android.iml (удалить код, который вы не используете), а затем импортировать его в Студию.

Точно так же, как те, которые начинаются со строки 2237 файла android.iml, извлеченного ниже:

<sourceFolder url="file://$MODULE_DIR$/sdk/testapps/testProjectTest/testlib/src" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/sdk/testapps/testSensors/ 
src " isTestSource="true" /> 
<urlsourceFolder="file://$MODULE_DIR$/sdk/testapps/userLibTest/src" isTestSource="true" /> 
<sourceFolder url="file://$MODULE_DIR$/tools /external/fat32lib/src/main/java" isTestSource="false" /> 
      <excludeFolder url="file://$MODULE_DIR$/.repo" /> 
      <excludeFolder url="file://$MODULE_DIR$/external /bluetooth" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/chromium" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/emma" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/icu4c" />//$MODULE_DIR$/external/emma" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/jdiff" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/webkit" /> 
      <excludeFolder url="file://$MODULE_DIR$ /frameworks/base/docs" /> 
      <excludeFolder url="file://$MODULE_DIR$/out" /> 
      <excludeFolder url="file://$MODULE_DIR$/out/eclipse" /> 
      <excludeFolder url=" file://$MODULE_DIR$/out/host" /> 
      <excludeFolder url="file://$MODULE_DIR$/out/target/common/docs" /> 
      <excludeFolder url="file://$MODULE_DIR$/ out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates" /> 
      <excludeFolder url="file://$MODULE_DIR$/out/target/product" /> 
      <excludeFolder url="file://$MODULE_DIR$/prebuilt" />

<excludeFolder url="file://$MODULE_DIR$/.repo"/>Мы можем отфильтровать ненужный контент так же, как в приведенном выше коде , так что при импорте он будет намного быстрее.

Вы также можете открыть модули слева через структуру проекта Android Studio, а затем исключить некоторые каталоги из источников справа.

2-2-3 Используйте Android Studio для импорта проекта с исходным кодом

С помощью описанных выше операций мы открываем Android Studio, затем выбираем открытие существующего проекта Android Studio, а затем выбираем открытие файла android.ipr в корневом каталоге исходного кода (Файл -> Открыть...) и затем появится как Тот же индекс, что и на картинке, может ждать импорта:


Пока мы можем легко использовать Android Studio для просмотра исходного кода (Ctrl+Shift+N или Navigate --> File). Как показано ниже:


Потрясающий! ! !

2-3 Использовать навыки

Как мы видим на картинке выше, мы можем искать весь набор исходного кода через Android Studio. Но в это время, если вы откроете Launcher.javaClass, а затем наведите указатель мыши на параметр String любого метода, удерживайте нажатой клавишу CTRL + левая кнопка мыши, чтобы перейти к классу String, вы обнаружите, что файл, к которому вы перешли, является файлом String.class, почему? Потому что он переходит к файлу класса внутри jar в вашем SDK по умолчанию. Поскольку мы хотим изменить и просмотреть весь набор исходного кода, переходить очень больно, поэтому нам нужно настроить его для перехода к файлу String.java Конкретный метод выглядит следующим образом:

Сначала удалите все зависимости в зависимостях и оставьте только те две, которые не выбраны на рисунке ниже (конечно, вы можете оставить некоторые другие банки, которые вы используете),

Затем щелкните значок «плюс» JAR или каталогов... Добавьте фреймворки и внешние файлы исходного кода и другие каталоги перехода, которые вы используете, к зависимостям, а затем примените их следующим образом:

(Здесь нужно обратить особое внимание: пункт Android API 23 нужно переместить в конец, иначе при переходе он все равно будет сначала переходить на String.class в SDK)


В это время мы открываем Launcher.java для перехода к String, как указано выше, и вы обнаружите, что он напрямую переходит к файлу String.java по пути вашего исходного кода, как показано на рисунке ниже, следующим образом:

В корневом каталоге Android нажмите клавишу быстрого доступа F4 (если она была установлена ​​как клавиша быстрого доступа Eclipse, это будет F12) или Файл -> Структура проекта, чтобы открыть настройки модуля,


Выберите каталог, который не нужно сканировать, и нажмите Excluded в правом верхнем углу (каталоги .repo, out и prebuilts относительно большие, рекомендуется выбирать), после завершения эффект будет таким, как показано слева, И папки окрашены по-разному.Красные - это исключенные папки.АС не будет сканировать содержимое. Перезапустив AS, вы обнаружите, что время сканирования каталога с исходным кодом значительно сократилось.


Советы: поскольку файлы конфигурации и кеша Android Studio находятся в папке home/.AndroidStudio (система Windows находится в папке C:\Users\Administrator\.AndroidStudio2.1), системный диск в течение длительного времени может быть перегружен. вы хотите изменить место хранения по умолчанию (например, перейти на другой диск), вам необходимо изменить соответствующую информацию о конфигурации в файле android-studio/bin/idea.properties, изменить ссылку на содержимое:


В-четвертых, настройте JDK и SDK AS

Этого достаточно для тех, кто обычно просто просматривает исходный код.

3 резюме

Как говорится, если вы хотите сделать хорошую работу, вы должны сначала отточить свои инструменты.Вы обнаружите, что использование Android Studio намного лучше, чем Eclipse и Source Insight (конечно, SubText по-прежнему очень мощен), будь то подсказки кода или переходы, или оболочка Python и т. д. Поддержка плагинов и т. д. очень мощная, испытывайте ее медленно.

Кстати, амбиции Google действительно велики, похоже, Android Studio вот-вот будет построена ими как универсальная IDE.

4 Дополнительный README

Прикрепите оригинальный англоязычный документ README, англоязычные мастера могут просто посмотреть здесь:

IDEGen автоматически создает конфигурации Android IDE для IntelliJ IDEA
и Eclipse. Ваша IDE должна быть в состоянии скомпилировать все за разумное
время без ошибок.

Если вы используете IntelliJ…

If this is your first time using IDEGen...

    IDEA needs a lot of memory. Add "-Xms748m -Xmx748m" to your VM options
    in "IDEA_HOME/bin/idea.vmoptions" on Linux or
    "IntelliJ IDEA.app/Contents/Info.plist" on OS X.

    Create a JDK configuration named "1.6 (No Libraries)" by adding a new
    JDK like you normally would and then removing all of the jar entries
    under the "Classpath" tab. This will ensure that you only get access to
    Android's core libraries and not those from your desktop VM.

From the project's root directory...

    Repeat these steps after each sync...

    1) make (to produce generated .java source)
    2) development/tools/idegen/idegen.sh
    3) Open android.ipr in IntelliJ. If you already have the project open,
       hit the sync button in IntelliJ, and it will automatically detect the
       updated configuration.

    If you get unexpected compilation errors from IntelliJ, try running
    "Build -> Rebuild Project". Sometimes IntelliJ gets confused after the
    project changes significantly.

Если вы используете Eclipse…

If this is your first time using IDEGen...

    Edit eclipse.ini ("Eclipse.app/Contents/MacOS/eclipse.ini" on OS X) and
    add "-Xms748m -Xmx748m" to your VM options.

    Configure a JRE named "1.5 (No Libraries)" under "Preferences -> Java ->
    Installed JREs". Remove all of the jar entries underneath "JRE system
    libraries". Eclipse will not let you save your configuration unless at
    least one jar is present, so include a random jar that won't get in the
    way.

From the project's root directory...

    Repeat these steps after each sync...

    1) make (to produce generated .java source)
    2) development/tools/idegen/idegen.sh
    3) Import the project root directory into your Eclipse workspace. If you
       already have the project open, simply refresh it (F5).

Исключая исходные корни и банки

IDEGen keeps an exclusion list in the "excluded-paths" file. This file
has one regular expression per line that matches paths (relative to the
project root) that should be excluded from the IDE configuration. We
use Java's regular expression parser (see java.util.regex.Parser).

You can create your own additional exclusion list by creating an
"excluded-paths" file in the project's root directory. For example, you
might exclude all apps except the Browser in your IDE configuration with
this regular expression: "^packages/apps/(?!Browser)".

Управление корневым порядком исходного кода (Eclipse)

You may want some source roots to come before others in Eclipse. Simply
create a file named "path-precedence" in your project's root directory.
Each line in the file is a regular expression that matches a source root
path (relative to the project's root directory). If a given source root's
path matches a regular expression that comes earlier in the file, that
source root will come earlier in the generated configuration. If a source
root doesn't match any of the expressions in the file, it will come last,
so you effectively have an implicit ".*" rule at the end of the file.

For example, if you want your applications's source root to come first,
you might add an expression like "^packages/apps/MyApp/src$" to the top
of the "path-precedence" file.  To make source roots under ./out come last,
add "^(?!out/)" (which matches all paths that don't start with "out/").

рекомендация

отblog.csdn.net/Vincent20111024/article/details/51307066