1. Contexte et état actuel d'Android

Le système Android a été créé par Andy Rubin puis racheté par Google ; la première version était Android 1.1. Aujourd'hui, la dernière version est Android M, lancée lors de la conférence Google I/O le 28 mai de cette année. Fait intéressant, toutes les versions d'Android portent des noms de desserts. Le tableau ci-dessous répertorie les 15 noms de versions d'Android, les numéros d'API correspondants et les dates de sortie !

Nom de la version du système Numéro de version de l'API Date de publication
Android 1.5: Cupcake 3 2009.4.30
Android 1.6: Donut 4 2009.9.15
Android 2.0/2.0.1/2.1: Eclair 5/6/7 2009.10.26
Android 2.2/2.2.1: Froyo 8 2010.5.20
Android 2.3: Gingerbread 9 2010.12.7
Android 3.0: Honeycomb 11 2011.2.2
Android 3.1: Honeycomb 12 2011.5.11
Android 3.2: Honeycomb 13 2011.7.13
Android 4.0: Ice Cream Sandwich 14 2011.10.19
Android 4.1: Jelly Bean 16 2012.6.28
Android 4.2: Jelly Bean 17 2012.10.30
Android 4.3: Jelly Bean 18 2013.7.25
Android 4.4: KitKat 19 2013.11.01
Android 5.0: Lollipop 21 2014.10.16
Android M : version d'aperçu 22 2015.5.28

OK, en plus des versions publiques ci-dessus, il y a bien sûr d'autres versions. En janvier 2015, la part de marché de chaque version est la suivante :


Android系统份额分布图(截止2015年1月)

Après avoir lu les informations ci-dessus, nous pourrions nous poser cette question : Avec autant de versions du système, quelle version devons-nous cibler pour le développement ? C'est le problème de « fragmentation » d'Android auquel chaque développeur Android doit faire face, et ce problème se divise en deux parties : ① Fragmentation du système : lors du développement d'applications, nous pouvons avoir besoin d'assurer la compatibilité avec des versions inférieures, par exemple une version minimale compatible de 2.3. En raison de la prévalence des ROM personnalisées, les gens en Chine aiment apporter des modifications au système d'origine, ce qui entraîne des problèmes où les choses fonctionnent sur le système d'origine mais pas sur les ROM personnalisées, comme les appels caméra~ ② Fragmentation des écrans : il existe sur le marché des téléphones de toutes sortes de tailles d'écran, 4.3", 4.5", 4.7", 5.0", 5.3"... etc. Outre les téléphones, il y a aussi des tablettes Android, donc pendant le développement nous pouvons avoir besoin de gérer le problème de l'adaptation d'écran. Bien sûr, comme nous ne faisons qu'apprendre, nous n'avons pas besoin de considérer ces choses complexes ; nous les approfondirons plus tard dans le développement réel !

2. Fonctionnalités du système Android et architecture de la plateforme

Fonctionnalités du système :

  • Prise en charge du framework d'applicationRéutilisation et remplacement de composants(Si une application suit les conventions du framework lors de sa publication, d'autres applications peuvent également utiliser ses modules)
  • DalvikMachine virtuelle : optimisée spécifiquement pour les appareils mobiles - Navigateur intégré : moteur open sourceWebKitEngine
  • SQLiteStockage de données structurées
  • Bibliothèques graphiques optimisées, prise en charge multimédia, téléphonie GSM, Bluetooth, etc.
  • Adopterla pile logiciellecomme approche de construction

Diagramme de l’architecture de la plateforme :

Android平台架构图

Compréhension simple de l’architecture :

  1. Application (couche Application)Le développement de la couche application dont nous parlons habituellement est effectué à ce niveau, ce qui inclut bien sûr un ensemble d’applications système intégrées, utilisant le langage Java
  2. Application Framework (couche Application Framework)Qu’il s’agisse d’applications intégrées au système ou d’applications que nous écrivons nous-mêmes, elles doivent toutes utiliser cette couche. Par exemple, si nous voulons créer une liste noire d’appels ou raccrocher automatiquement les appels, nous devons utiliser TelephonyManager. Grâce à cette couche, nous pouvons facilement mettre en œuvre l’opération de raccrochage sans nous soucier de l’implémentation sous-jacente
  3. Bibliothèques + Android RuntimeAndroid nous fournit un ensemble de bibliothèques C/C++ utilisées par différents composants de la plateforme, tels que le framework multimédia. L’Android Runtime est composé de l’ensemble de bibliothèques principales d’Android et de la machine virtuelle Dalvik. La Dalvik VM est une machine virtuelle conçue pour les appareils mobiles. Ses caractéristiques : elle ne nécessite pas une vitesse de calcul CPU très rapide ni une grande quantité d’espace mémoire. Chaque application s’exécute indépendamment dans sa propre Dalvik VM (chaque application correspond à un processus Dalvik). Son flux d’exécution simple est le suivant :Dalvik的运行流程
  4. Noyau LinuxC’est ici que les pilotes sous-jacents interviennent, ainsi que certains services système tels que la sécurité, la gestion de la mémoire et la gestion des processus

3. Résumé de cette section :

Dans cette section, nous avons passé en revue le contexte historique et l’état actuel d’Android, puis brièvement analysé les caractéristiques système et l’architecture système d’Android. Ces notions conceptuelles nécessitent simplement une brève compréhension. Dans la section suivante, nous commencerons à configurer l’environnement Android !