Suivez ces instructions pour commencer à créer Android.
Mise en place de l'environnement
Initialiser l'environnement avec le envsetup.sh
script:
source build/envsetup.sh
ou
. build/envsetup.sh
Voir le script à la plate - forme / build / envsetup.sh pour une description des commandes connexes, y compris le déjeuner pour la sélection des cibles de l' appareil et des tapas pour la création d' applications dégroupées, telles que l' application TV de référence .
Vous devez rééditer cette commande après chaque repo sync
en repo sync
pour ramasser tout changement à ce script. Notez que le remplacement de la source
avec .
(un seul point) permet d'économiser quelques caractères, et la forme courte est plus couramment utilisée dans la documentation.
Les envsetup.sh
importe de script plusieurs commandes qui vous permettent de travailler avec le code source Android, y compris les commandes utilisées dans cet exercice.
Pour voir la liste complète des commandes disponibles, exécutez :
hmm
Choisir une cible
déjeuner
Choisissez la cible à construire avec le lunch
. lunch product_name - build_variant
de product_name en tant que produit à construire, et build_variant comme la variante de construction, et stocke ces sélections dans l'environnement à lire par la suite de invocations m
et d' autres commandes similaires.
La configuration exacte peut être passée en argument. Par exemple, la commande suivante fait référence à une version complète de l'émulateur, avec tout le débogage activé :
lunch aosp_arm-eng
Si courir sans argument, le lunch
vous invite à choisir une cible dans le menu. Voir Sélection d' une construction de l' appareil pour les configurations de construction de tous les appareils existants.
Toutes les cibles de construction prennent la forme BUILD-BUILDTYPE
, où BUILD
est un nom de code faisant référence à la combinaison de caractéristique particulière. BUILDTYPE
est l' un des éléments suivants.
Type de construction | Utilisation |
---|---|
utilisateur | Accès limité; adapté à la fabrication |
userdebug | Comme utilisateur mais avec accès root et capacité de débogage ; préféré pour le débogage |
fra | Configuration de développement avec des outils de débogage supplémentaires |
La version userdebug doit se comporter de la même manière que la version utilisateur, avec la possibilité d'activer un débogage supplémentaire qui viole normalement le modèle de sécurité de la plate-forme. Cela rend la version userdebug idéale pour les tests utilisateur avec de meilleures capacités de diagnostic. Lors du développement de la construction de userdebug, suivez les directives de userdebug .
La version eng donne la priorité à la productivité de l'ingénierie pour les ingénieurs qui travaillent sur la plate-forme. La version eng désactive diverses optimisations utilisées pour offrir une bonne expérience utilisateur. Sinon, le build eng a un comportement similaire aux builds user et userdebug afin que les développeurs d'appareils puissent voir comment le code se comporte dans ces environnements.
Pour plus d' informations sur la construction et en cours d' exécution sur le matériel réel, voir Devices clignotant .
tapas
Les tapas
commande configure la construction d'applications dégroupées. Il sélectionne des applications individuelles à créer par le système de génération Android. Contrairement à lunch
, tapas
ne demande pas la construction d'images pour un appareil.
Run tapas help
pour plus d' informations sur la commande.
Construire le code
Cette section est un résumé rapide pour s'assurer que la configuration est terminée.
Tout Construire avec m
. m
peut gérer des tâches parallèles avec un -jN
argument. Si vous ne fournissez pas un -j
argument, le système de construction sélectionne automatiquement un nombre de tâches en parallèle qu'il pense est optimal pour votre système.
m
Comme expliqué ci - dessus, vous pouvez construire des modules spécifiques au lieu de l'image complète de l' appareil en énumérant leurs noms dans votre m
ligne de commande. De plus, m
fournit des particuliers à des fins pseudo -cibles . Quelques exemples sont:
-
droid
-m droid
est la construction normale. Cette cible est ici car la cible par défaut nécessite un nom. -
all
-m all
construit tout ce quim droid
fait, plus tout ce qui n'a pas ledroid
tag. Le serveur de build exécute ce pour vous assurer que tout ce qui est dans l'arbre et a unAndroid.mk
fichier construit. -
m
- Runs construit à partir du haut de l'arbre. Ceci est utile parce que vous pouvez exécutermake
à partir des sous - répertoires. Si vous avez leTOP
ensemble environnement variable, il utilise cela. Si vous ne le faites pas, il recherche l'arborescence à partir du répertoire courant, en essayant de trouver le sommet de l'arborescence. Vous pouvez construire soit l'arbre entier de code source en exécutantm
sans arguments ou construire des cibles spécifiques en spécifiant leur nom. -
mma
- Builds tous les modules dans le répertoire courant, et leurs dépendances. -
mmma
- Builds tous les modules dans les répertoires fournis, et leurs dépendances. -
croot
-cd
au sommet de l'arbre. -
clean
-m clean
supprime tous les fichiers de sortie et intermédiaires pour cette configuration. Ceci est la même chose querm -rf out/
.
Exécuter m help
pour voir ce que les autres pseudo -cibles m
offre.
Exécuter la compilation
Vous pouvez soit exécuter votre build sur un émulateur, soit le flasher sur un appareil. Parce que vous avez déjà choisi votre cible de construction avec le lunch
, il est peu probable que de courir sur une cible différente de celle qu'il a été construit pour.
Clignotant avec fastboot
Pour établir un appareil, utilisez fastboot
, qui devrait être inclus dans votre chemin après une construction réussie. Voir clignotant un dispositif pour les instructions.
Émuler un appareil Android
L'émulateur est ajouté à votre chemin automatiquement par le processus de construction. Pour exécuter l'émulateur, tapez :
emulator
Comprendre les empreintes de build
Pour suivre et signaler les problèmes liés à une version Android particulière, il est important de comprendre l'empreinte de la version. L'empreinte digitale de build est une chaîne unique, lisible par l'homme, contenant les informations du fabricant émises pour chaque build. Voir la description de dactyloscopiques au paramètres de fabrication section de la définition de compatibilité Android document (CDD) pour la syntaxe précise.
L'empreinte digitale de construction représente une implémentation et une révision Android particulière. Cette clé unique permet aux développeurs d'applications et autres de signaler des problèmes avec des versions de firmware spécifiques. Voir rapports Bugs pour le processus de signalement des problèmes Android.
Une empreinte digitale de build encapsule tous les détails d'implémentation d'Android :
- API : Android et natives, ainsi que des comportements d'API logicielles
- API de base et certains comportements de l'interface utilisateur du système
- Exigences de compatibilité et de sécurité définies dans le CDD
- Spécifications du produit et les utilisations-fonction paramètre utilisé par des applications à des dispositifs cibles répondant aux exigences attendues
- Implémentations de composants matériels et logiciels
Voir la CDD pour plus de détails et Ajout d' un nouveau périphérique pour obtenir des instructions sur la création d' un tout nouvel appareil Android.
Dépannage des erreurs de génération courantes
Mauvaise version de Java
Si vous essayez de construire une version d'Android qui est incompatible avec votre version de Java, make
Abandonne avec un message tel que:
************************************************************ You are attempting to build with the incorrect version of java. Your version is: WRONG_VERSION. The correct version is: RIGHT_VERSION. Please follow the machine setup instructions at https://source.android.com/source/initializing.html ************************************************************
Voici les causes probables et les solutions :
- Le défaut d'installer le JDK comme spécifié dans les exigences de JDK . Assurez - vous que vous avez suivi les étapes de Configuration de l'environnement et Choisir une cible .
- Un autre JDK précédemment installé apparaît dans votre chemin. Ajoutez le JDK correct au début de votre chemin ou supprimez le JDK problématique.
Pas d'autorisation USB
Par défaut sur la plupart des systèmes Linux, les utilisateurs non privilégiés ne peuvent pas accéder aux ports USB. Si vous voyez une erreur de permission refusée, suivez les instructions Configuration de l' accès USB .
Si la BAD était déjà en cours d' exécution et ne peut pas se connecter à l'appareil après avoir obtenu ces règles, vous pouvez le tuer avec adb kill-server
. Cette commande provoque le redémarrage d'ADB avec la nouvelle configuration.