Use o Android Studio para importar o código-fonte do Android

1. Fundo

Este artigo explica principalmente como usá-lo para ver a configuração relevante do código-fonte (este exemplo é baseado no código-fonte oficial para instruções de configuração). No código-fonte do android, descobri que existe um diretório development/tools/idegen. Verifiquei e descobri que é o arquivo do projeto que gera o IDE (principalmente o arquivo do projeto do intellij, que na verdade é o Android Studio), então o ferramenta de bem-estar vem assim. Para detalhes, veja abaixo.

2 Processo de configuração

2-1 Preparações básicas

Primeiro de tudo, você precisa instalar e configurar o Android Studio, e depois baixar o código-fonte. Quanto a como fazer o download, não vou explicar aqui. É relativamente simples, basta verificar no site oficial.

Em segundo lugar, você precisa garantir que o código-fonte foi compilado para gerar arquivos de diretório relacionados a out.

Bem, acima estão algumas preparações básicas. Para código-fonte personalizado ou código-fonte nativo, essas etapas de preparação são necessárias, portanto, não há necessidade de enfatizá-las.

2-2 Importação e uso da configuração

2-2-1 Compilar o módulo idegen do código-fonte e gerar o arquivo de configuração do AS (*.ipr)

Antes de começar a compilar o módulo idegen, você deve saber que primeiro precisa compilar o diretório out e os arquivos relacionados globalmente. Não vou falar muito sobre isso. Compilamos o módulo idegen com o seguinte comando:

mmm desenvolvimento/ferramentas/alien/

O significado desta linha de comando é compilar o projeto do módulo idegen e, em seguida, gerar o arquivo idegen.jar (se você não acredita em mim, vá e verifique o destino Android.mk deste módulo, sem mais explicações). Após a execução, se você vir as seguintes informações, isso significa que a compilação está OK:

...... 
#### make concluída com sucesso (7 segundos) ####
 
 

Em seguida, execute o seguinte script:

desenvolvimento/ferramentas/alien/alien.sh

Este comando significa gerar os arquivos de configuração do projeto android.ipr, android.iml IEDA correspondentes no diretório raiz. Aguarde um pouco para obter uma mensagem semelhante à seguinte para indicar OK:

Leitura exclui: 21ms 
Árvore percorrida: 194799ms
 
 

Por meio das operações acima, concluímos o trabalho básico de configuração do código-fonte.

2-2-2 Algumas operações de personalização antes de importar para o Android Studio

Todo mundo sabe que usar o Eclipse para importar código-fonte é muito lento, e o Android Studio também é lento ao importar código-fonte, por isso é recomendável modificar o arquivo android.iml (remover o código que você não usa) e depois importá-lo no estúdio.

Assim como os que começam na linha 2237 do arquivo android.iml extraído abaixo:

<sourceFolder url="file://$MODULE_DIR$/sdk/testapps/testProjectTest/testlib/src" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/sdk/testapps/testSensors/ 
src " isTestSource="true" /> 
<sourceFolder url="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="arquivo://$MODULE_DIR$/external/chromium" /> 
      <excludeFolder url="arquivo://$MODULE_DIR$/external/emma" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/icu4c" />//$MODULE_DIR$/external/emma" /> 
      <excludeFolder url="file://$MODULE_DIR$/external/jdiff" />
      <excludeFolder url="arquivo://$MODULE_DIR$/external/webkit" /> 
      <excludeFolder url="arquivo://$MODULE_DIR$/frameworks/base/docs" /> 
      <excludeFolder url="arquivo://$ 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="arquivo://$MODULE_DIR$/pré-construído" />

<excludeFolder url="file://$MODULE_DIR$/.repo"/>Podemos filtrar o conteúdo desnecessário da mesma forma que o código acima , para que seja muito mais rápido na hora de importar.

Você também pode abrir os Módulos à esquerda através da Estrutura do projeto do Android Studio e, em seguida, excluir alguns diretórios nas Fontes à direita.

2-2-3 Use o Android Studio para importar o projeto de código-fonte

Com as operações acima, abrimos o Android Studio, escolhemos abrir um projeto existente do Android Studio e, em seguida, escolhemos abrir o arquivo android.ipr no diretório raiz do código-fonte (Arquivo --> Abrir...) e em seguida, apareça como O mesmo índice da imagem pode aguardar a importação:


Até agora, podemos facilmente usar o Android Studio para visualizar o código-fonte (Ctrl+Shift+N ou Navegar --> Arquivo). Como mostrado abaixo:


Incrível! ! !

2-3 Usar habilidades

Como podemos ver na imagem acima, podemos pesquisar todo o conjunto de código-fonte através do Android Studio. Mas, neste momento, se você abrir um Launcher.javaClass e, em seguida, coloque o mouse no parâmetro String de qualquer método, mantenha pressionada a tecla CTRL + botão esquerdo do mouse para pular para a classe String, você descobrirá que o arquivo para o qual você saltou é um arquivo String.class, por quê? Porque ele pula para o arquivo de classe dentro do jar em seu SDK padrão. Como queremos modificar e visualizar todo o conjunto de código-fonte, é tão doloroso pular, então precisamos configurá-lo para pular para o arquivo String.java. O método específico é o seguinte:

Primeiro exclua todas as dependências nas dependências, e mantenha apenas as duas que não estão selecionadas na figura abaixo (claro que você pode optar por manter alguns outros jars que você usa),

Em seguida, clique no sinal de mais de JARs ou diretórios... Adicione as estruturas e externas de seu código-fonte e outros diretórios de salto que você usa às dependências e, em seguida, aplique, conforme a seguir:

(Atenção especial deve ser dada aqui: o item Android API 23 deve ser movido para o final, caso contrário, ao pular, ele ainda pulará para String.class no SDK primeiro)


Neste momento, abrimos o Launcher.java para pular para String como acima, e você verá que ele salta diretamente para o arquivo String.java no caminho do código-fonte, conforme mostrado na figura abaixo, da seguinte forma:

No diretório raiz do Android, pressione a tecla de atalho F4 (se tiver sido definida como tecla de atalho do Eclipse, será F12) ou File --> Project Structure para abrir o Module Setting,


Selecione o diretório que não precisa ser verificado e clique em Excluído no canto superior direito (os diretórios .repo, out e prebuilts são relativamente grandes, é recomendável escolher), após a conclusão, o efeito é o mostrado à esquerda, e as pastas têm cores diferentes. As vermelhas são as pastas excluídas. O AS não verificará o conteúdo. Reinicie o AS, você descobrirá que o tempo para escanear o diretório do código-fonte é bastante reduzido.


Dicas: Como os arquivos de configuração e cache do Android Studio existem na pasta home/.AndroidStudio (o sistema Windows está em C:\Users\Administrator\.AndroidStudio2.1 ), muito tempo pode fazer com que o disco do sistema fique apertado. você deseja modificar o local de armazenamento padrão (como mudar para outro disco), você precisa modificar as informações de configuração relevantes no arquivo android-studio/bin/idea.properties, modifique a referência de conteúdo:


Quarto, configure o JDK e o SDK do AS

Isso é o suficiente para quem normalmente apenas visualiza o código-fonte.

3 resumo

Como diz o ditado, se você quer fazer um bom trabalho, você deve primeiro aprimorar suas ferramentas. Você descobrirá que usar o Android Studio é muito melhor do que o Eclipse e o Source Insight (claro, o SubText ainda é muito poderoso), seja ele prompts de código ou saltos, ou Python Shell, etc. O suporte a plug-ins e assim por diante é muito poderoso, experimente-o lentamente.

A propósito, as ambições do Google são realmente grandes. Parece que o Android Studio está prestes a ser construído por eles como um IDE completo.

4 LEIA-ME Adicional

Anexe o documento README original em inglês, os mestres em inglês podem apenas olhar aqui:

O IDEGen gera automaticamente as configurações do Android IDE para IntelliJ IDEA
e Eclipse. Seu IDE deve ser capaz de compilar tudo em um
período de tempo razoável sem erros.

Se você estiver usando o 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.

Se você estiver usando o 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).

Excluindo raízes e jars de origem

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)".

Controlando a ordem raiz da fonte (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/").

Acho que você gosta

Origin blog.csdn.net/Vincent20111024/article/details/51307066
Recomendado
Clasificación