This course solves the problem of how to understand the beginner's mind of Android architecture design and develop a featured product with Android system with deep customization and soft and hard integration capability.
The course takes the five core of Android: HAL, Binder, Native service, Android service (and the example of AMs and WMS), the View system as the spindle, a one-time thorough mastery of the essence of Android.
The reason why the development of Android products is required, originated in:
1, HAL is the key technology and required technology for Android Framework&application and the underlying hardware integration;
2, Native Service for the upper layer represents the hardware, is the real essence of Android bottom;
3, Android service is the control core of the application, all the actions of the application are controlled by Android service;
4, Binder is the cornerstone of Android system operation, do not grasp the binder will never master Android;
5, the difference of view system is one of the core competitiveness of Android products for consumers, Apple and Samsung are the classic cases of success in this field;
Through the five core of Android baptism, so fully equipped with the Android system two times the development and transformation capabilities,
To develop the most distinctive Android products.
Student base
able to read C + + and Java
First, Course features
• Build 360-degree Android product development capabilities and problem-solving capabilities to independently develop and deeply customize products with Android systems;
L through the whole system of Android software and hard integration and HTML5 end Cloud integration technology;
L Full case-driven, re-analysis of the case code behind the design thinking and business password;
L thoroughly master the password behind the Android Hal;
L thoroughly master the implementation mechanism and technology of Android HAL
L thoroughly master the password behind the Android Framwork
L thoroughly master the design thinking and philosophy of Android Framwork
L UNCOVER the cornerstone of the Android system's Operation Binder
L Use a camera instance to thoroughly dissect native service and binder
L completely combat all the techniques of writing Andorid applications
L MASTER the source and essence of HTML5 technology
Second, training Object
L mobile phone, tablet, smart TV, car system, smart home equipment (such as microwave ovens, security doors, refrigerators) and all want to use Android hardware manufacturers;
L people who are interested in Android soft and hard integration;
L want to quickly understand and master Android applications and the underlying technology personnel;
L Android Bottom-level developer;
L Android frame design and developer;
L Android product architect;
L Android System architect;
L Android app developer;
L people who want to work in HTML5 system (browser development, PHONEGAP plugin development, etc.)
L Want enthusiasts, engineers, programmers, and engineering technicians in the relevant industries to engage in mobile terminal development
Third, Training Objectives
L committed to building in the era of soft and hard cloud integration with independent thinking ability and practical ability of high-quality IT personnel;
L Android Senior Engineer
L Android Transplant Engineer
L Android Framework Development engineer
L Android Project manager
L Android Architect
L HTML5 System Architecture and developers
Four , student base
1) with Java Foundation;
2) have C and C + + foundation better;
3) All the understanding of the design pattern will be of great benefit to improving the listening effect;
Five , training methods
For 3 days, this course covers Android's underlying, Android HAL, Android Runtime, Android Framework, Android Native Service, Android Binder, Android App Development, Android Web development and other soft and hard cloud integration of almost all the core technology and uncover the source and essence of HTML5 Technology, committed to building in the era of soft and hard cloud integration with independent thinking ability and practical ability of high-quality IT personnel Teaching is a case-driven basis for the design thinking and business password behind the explanation code;
Liaoliang Teacher
China's only mobile internet and cloud computing big Data synthesizer;
President and chief expert, cloud computing Big Data Spark Asia-Pacific Institute;
The president and chief expert of Spark's Asia-Pacific Research Institute, Spark source-level expert, has spent more than 2 years on Spark's painstaking research (since January 2012), and has completed a thorough study of the 13 different versions of Spark's source code, while constantly using the various features of spark in the real world, Wrote the world's first systematic spark book and opened the world's first systematic spark course and opened the world's first high-end spark course (covering spark core profiling, source interpretation, performance optimization, and business case profiling). Spark source research enthusiasts, fascinated by Spark's new Big data processing model transformation and application.
Hadoop Source-level experts, who have been responsible for the development of a well-known company's class Hadoop framework, focus on the provision of one-stop Hadoop solutions, as well as one of the first practitioners of cloud computing's distributed Big Data processing, the avid enthusiast of Hadoop, Constantly in the practice of using Hadoop to solve different areas of big data processing and storage, is now responsible for Hadoop in search engine research and development, there is "cloud computing distributed Big Data Hadoop Combat Master Road---from scratch" Cloud computing distributed Big Data Hadoop Combat Master Road---Master Rise "cloud computing distributed Big Data Hadoop. A master of the road---Master of the top "and so on;
Android architect, senior engineer, consultant, training expert;
Proficient in Android, HTML5, Hadoop, English broadcasting and bodybuilding;
A one-stop solution dedicated to Android, HTML5, Hadoop's soft, hard, and cloud integration;
China's earliest (2007) engaged in Android system porting, soft and hard integration, framework modification, application software development as well as Android system testing and application software testing, one of the technical experts and technical entrepreneurs.
One of the earliest practitioners in the field of HTML5 Technology (2009), successfully implemented a variety of custom HTML5 browsers for multiple organizations, participating in the development of a well-known HTML5 browser;
More than 10 of it best-selling authors;
Six , training content
First day |
1th topic: The Secrets of Android architecture How does Google support and control the world's hardware vendors and application developers through Android? What is the source of Android control power? How is it technically implemented? 1,3 Android Linux kernal, HAL, Libararies, Runtime, application framework design concept and implementation technology; 1.4 The delicate relationship between Android platform and hardware and cloud; 2nd topic: Android Boot process disclosure 2,1 The first user process profiling; The relationship between 2,2 ServiceManager and binder; 2,3 zygote secret and its operation mode; 2,4 The first Java process in Android, the first Java process and ServiceManager relationship and code implementation; 3rd topic: Launching a new app in Android secrets 3,1 What happens when we touch the icon of an app on the Android screen in launcher? Where is the execution portal for the 3,2 application? 3.3 How did the process of a new Android application come about? 4th topic: HAL Secrets 4.1 Hal is added to Android for true historical reason analysis 4.2 Hal's Unexpected value revelation 4.3 Hal's stub 4.4 hw_module_t and hw_device_t How does the 4.5 C language implement inheritance to meet the design purpose of the HAL stub? including memory structure analysis and code style discussion, etc. 4.6 How do I avoid dirty Code when the HAL stub is implemented? 5th topic: HAL Stub combat 5.1 Using object-oriented thinking to analyze, design and implement stubs 5.2 The relationship between subclasses of hw_module_t and subclasses of hw_device_t and the advantages of this relationship 5.3 How do I implement a call to a C function in a struct? How does the subclass of hw_module_t interact with hw_device_t subclasses in code? 5.4 Type Conversion Issues 6th topic: Hal and Linux Kernel 6.1 HAL stub access and control hardware Anatomy of Linux kernel under 6.2 android 6.3 Android Hardware Driver 6.4 Access to Linux kernel space driver 7th topic: Service and HAL stub integration 7.1 Interacting with HAL in a service-oriented perspective and approach Analysis of the type and C/s structure of 7.2 library files 7.3 Hw_get_module 7.4 Getting the code flow anatomy of a HAL stub object 7.5 Why the HAL stub's Open method must provide the supporting API (the operating interface to the device) to runtime; 8th topic: Service, ServiceManager, and binder interaction relationships uncover Who is the first service of 8.1 binder? Why design and implement this? 8.2 How to write a service 8.3 New service generation interaction process with ServiceManager and binder 8.4 How do I get a service? Analysis of producer and consumer model of 8.5 binder |
|
Time |
Content |
Note |
Next day |
9th topic: Binder and shared Memory 9.1 Binder Source Code anatomy 9.2 Shared Memory Analysis 9.3 How does binder use shared memory to complete interprocess communication? 9.4 Analyzing Binder's producer and consumer patterns using shared memory from a code perspective 10th topic: Dalvik VMS 10.1 Dalvik VM features, Dalvik VM and JVM comparisons What are the root causes and solutions for the 10.2 Dalvik VM's memory distribution and oom (out of memory)? 10.3 Preload classes and preload Resources,classloader exactly where? 10.4 Dalvik with Java and C + + 11th topic: JNI Programming in Android 11.1 Java calls to C + + 11.2 jnienv, JVM, Jobject secret 11.3 C + + Create Java objects, invoke Java properties and methods Multithreaded Programming in 11.4 JNI The application of 11.5 facade pattern in JNI 11.6 PnP (Plug and Play) 12th topic: NDK Programming in Android The revelation of 12.1 ndk and JNI relationship 12.2 NDK Development process 12.3 The installation and operation of programs developed using the NDK approach Java in 12.4 NDK calls each other in C + + Multithreaded programming in the 12.5 ndk 12.6 The secrets of standardization and substitution for Android software development 13th topic: Systemserver and Service in the framework 13.1 Zygote and Systemserver 13.2 Systemserver The process of opening the Java World How does the 13.3 Android service and native service relate? 13.4 Android Service with ServiceManager 13.5 How to add your own services to ServiceManager? 14th topic: Adding a Java-written service to the Applciation framework 14.1 IInterface and CTS 14.2 Binder 14.3 Aidl 14.4 Java Service and manager 14.5 Systemserver, ServiceManager 15th topic: Event-driven mechanism for Android framework porting How does the 15.1 Android service deal with hardware blocking? 15.2 opening new sub-threads and constantly poll 15.3 Listener Registration 15.4 Callback 15.5 handler, Message, Looper, MessageQueue, application in the framework 15.6 instance of event-driven mechanism 16th topic: Manager, Service, and full data flow Principles of separation of 16.1,manager and service 16.2,ANR problems 16.3, blocking operation and non-blocking operation 16.4, illustrate the data flow from the bottom to the top of Android in an example 17th theme: Android soft, hard, cloud Trinity Integration 17.1 Technologies to uncover the cloud, including key technologies and implementations of the cloud 17.2 integration of Android and cloud in native service 17.3 Integration of Android and cloud in the application framework 17.4 Android soft, hard, cloud Trinity integration, including patterns, strategies, implementation technologies |
|
Time |
Content |
Note |
Third Day |
18th topic: Android application framwork and app relationships What is the specific relationship between the 18.1 framework and the app? 18.2 The framework and app interaction process? How does the 18.3 framework control the app? 18.4 Framework and Android's four components; 19th topic: Android Application framwork and app relationships What is the specific relationship between the 19.1 framework and the app? 19.2 the framework and app interaction process? How does the 19.3 framework control the app? 19.4 Framework and Android's four components; 20th topic: Handler, Looper, Message, MessageQueue 20.1. The event-driven model of Android 20.2. Looper, MessageQueue, Hanlder, message and other source depth analysis 20.3. Looper, MessageQueue, Hanlder, message, and multi-threaded cases 21st Topic: Asynctask Asynchronous Threading Technology 21.1. Reasons for using Asynctask and thoughts on Asynctask 21.2. Asynctask code Example 21.3. Asynctask Source Analysis 22nd class: Activitymanagerservice Principle and core architecture analysis Architecture analysis and main anatomy of 22.1 AMS 22.2 AMS Start a Process architecture parsing source Analysis 22.3 AMS start activity, Service, broadcast, ContentProvider architecture analysis and source code analysis 22.4 Proxy-stub 23rd class: Windowmanagerservice Principle and core architecture analysis 23.1 Windowmanagerservice Architecture Parsing 23.2 Window creation Process Analysis 23.3 activity interacts with Windowmanagerservice 23.4 Windowmanagerservice under the Surfaceflinger 23.5 drawing of Windows and changing the whole code parsing 24th topic: Dalvik Virtual Machine Architecture design and implementation for a thorough analysis 24.1 Dalvik virtual machine boot process profiling Analysis of running process of 24.2 Dalvik virtual machine Analysis of the JNI method registration process for 24.3-C + + Dalvik interaction with Java 24.4 Dalvik about process and thread creation and management profiling 25th topic: Source code: Through binder, ServiceManager, Bpbinder, Bnbinder, aidl through the architecture core of Android entire system (120 minutes) 25.1. How does the source Profiling Service Manager become a daemon? 25.2. How does the source profiling server and client get the Service Manager interface? 25.3. How does the source profiling server start up its own services? How is Service Manager servicing server during server startup? 25.25 How does the source Profiling Service Manager provide services to the client? 25.5. Android system interprocess communication binder mechanism Java Interface Source code analysis in the application framework layer |
|