2012-11-14 6 views

risposta

6

Ho passato un po 'di tempo attorno al codice sorgente Android negli ultimi anni, quindi consentitemi di dare una spiegazione alle diverse cartelle nella radice. Questi sono più o meno (a seconda un po 'della versione Android):

  • bionico

    • la libreria C standard utilizzato e sviluppato per Android appositamente.
  • avviabile

    • Contiene il bootloader (che la fabbricazione del dispositivo fornisce normalmente) e l'applicazione di recupero che è eseguito quando il telefono viene avviato in modalità di recupero.
  • accumulo

    • Android ha molto singolare sistema di compilazione modulare, che si è costruito in cima ordinarie make-files. Ad esempio in build/target/products troverai tutti gli obiettivi di generazione generici che vedi all'avvio di lunch.
  • cts

    • Compatibility Test Suite. Quando un produttore di dispositivi vuole ottenere la certificazione del proprio dispositivo (e quindi ottenere Google Play e altre app proprietarie), è necessario passare il CTS. La fonte di CTS è contenuta in questa directory.
  • Dalvik

    • The dalvik virtual machine. Android utilizza java per la parte migliore del framework e per tutte le app. Poiché ogni app viene eseguita come un proprio processo sotto il proprio uid, nella propria macchina virtuale, la macchina virtuale deve avere un ingombro di memoria piuttosto ridotto, quindi Android ha scelto di utilizzare una macchina virtuale personalizzata per Java chiamata dalvik. La fonte di Dalvik è posta qui.
  • sviluppo

    • Non ho usato questo repository davvero, ma sembra sostenere roba per lo sviluppo di applicazioni Android sono posti qui.
  • dispositivo

    • Ciascun dispositivo fornitore messo tutto il materiale che definisce i loro dispositivi specifici qui. Ad esempio, puoi fornire un devices/{yourname}/products/{yourdevice}.mk che definisce esattamente quali app devono essere create per il tuo dispositivo (oltre ad altre cose). Questo aggiunge una voce al menu del pranzo chiamato {yourdevice} che è possibile creare.
  • docs

    • Per quanto ho capito questo è in realtà la fonte di http://source.android.com.
  • esterno

    • Quasi tutti i progetti di terze parti che Android tirare dentro e che costituisce la base di Android il sistema operativo Linux si trovano qui. Sono mantenuti nei loro repository git, il che rende facile estrarre nuove versioni da upstream. Vedete cose come bzip2, dbus, ping, tcpdump e molti altri progetti qui.
  • quadri

    • Questa è la fonte del framework Android. Tutto ciò che usi quando costruisci un'app per Android. Penso che sia da qualche parte intorno al 50% del codice Java e del 50% C++ (e talvolta C), che è legato insieme usando jni. Quando ad esempio riproduci audio in un'app, probabilmente stai accedendo a AudioManager. La sorgente di AudioManager e tutte le origini Android interne che supportano AudioManager si trovano sotto frameworks/base/media. Troverai la maggior parte degli SDK Android implementati da qualche parte sotto lo frameworks/base/.
  • hardware

    • parla Android per un set di librerie che poi controlla l'hardware (come vibratore, luci, sensore di prossimità, GPS, audio, ecc). Queste librerie sono chiamate collettivamente HAL (Hardware Abstraction Layer). Alcune implementazioni predefinite sono contenute nella cartella hardware, tuttavia i produttori implementano le proprie librerie e le inseriscono in hardware/{manufcaturename} (o in device/{manufacture}).
  • libcore

    • Non so su questo.
  • NDK

    • Il native development kit che consente agli sviluppatori di applicazioni di codificare alcune (o tutte) delle loro applicazioni come codice nativo (in C e C++ di solito). Fondamentalmente è una toolchain per crosscompile alle diverse architetture di cpu su cui gira Android.
  • fuori

    • Tutti manufatti di build Android sono posti qui. Quindi rimuovere la cartella out pulirà completamente i sorgenti. out è diviso in diverse cartelle, le principali sono host e target dove le cose compilate per la macchina host (ad esempio adb) e per il dispositivo di destinazione (la maggior parte del sistema Android) sono separate. Ci sono ulteriori suddivisioni sotto, e in generale la cartella out è abbastanza ben ordinata, quindi dovresti semplicemente esplorarla un po '.
  • pacchetti

    • questi contiene tutte le applicazioni di default, i fornitori, inputmethods, e così via, che sono costruiti con Android. Qui sono posizionati l'app del telefono, i contatti, il calendario, la calcolatrice, la tastiera virtuale predefinita, ecc. Non sono app di terze parti, sono app interne in cui molti di loro sono basati su apis Android non pubblici. Quindi la maggior parte delle app qui non può essere costruita contro l'SDK Android pubblico (ad es. In eclipse), ma deve essere costruita come parte del processo di build completo di Android.
  • precompilati

    • Roba che viene distribuito insieme Android come file binari. La cosa principale che si trova qui è il crosscompiler (s) per costruire Android per ARM (e ora anche x86). Sono preconfigurati in modo tale da non dover costruire autonomamente i crosscompiler. (Questo potrebbe essere molto tempo se oltre Android ha avuto anche per compilare i crosscompilers.)
  • sdk

    • Tutti gli strumenti che fanno parte del SDK di Android, come ad esempio DDMS , l'emulatore, sdkmanager, ecc
  • sistema

    • I processi del sistema centrale in esecuzione su un dispositivo Android. Questi sono programmi nativi (c o C++). Mediaservice è un esempio di tale servizio di sistema.

Questo è tutto dalla mia esperienza con il lavoro con la sorgente di Android, non ho nessun (altro) i riferimenti.Spero che questo ti aiuti a ottenere una panoramica della struttura delle cartelle.

+1

Molto utile. Grazie! – jgro

+1

esattamente ciò che è necessario ... grazie – Pawan