首页 > 代码库 > 王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V4之Android企业级高级应用开发最佳实践(5天)--0905Final修订版本

王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V4之Android企业级高级应用开发最佳实践(5天)--0905Final修订版本

本课程企业生产环境下Android应用程序开发和框架高级开发的一站式解决方案课程,致力于解决Android企业级开发和高级开发需要的Application Framework的所有技能。

          从企业级商业实战的角度入手,通过34个主题循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度,在揭秘企业开所有技能的同时我们更近一步的揭秘和高级应用开发息息相关的Application Framework相关的主题和技能,最后通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发任意类型的Android应用程序居高零下、举重若轻。

 

课程要点:

1,Android自定义UI、样式、布局等技巧一网打尽;

2,绘图技巧细致解析;

3,彻底揭秘Android的安全机制;

4,根据商业化场景彻底剖析Android的生命周期及其使用的最佳时间;

5,使用JUnit测试Android业务代码;

6,掌握Android基本和核心的UI开发技术;

7,”Android商业化高级UI实战”是根据过去20多款商业级别Android应用程序开发尤其是类似CRM系统中最经典、最经常使用的技术抽取而成,掌握之后基本上不会在遇到UI方面的难点;

8,细致剖析并实战Android性能测试,找出性能瓶颈,并进行代码优化,分享代码优化的最佳实践;

9,对数据的处理时Android绝大多数应用程序的核心,尤其是对CRM系统而言,这一天,我们会对Android中的本地数据处理方式及其商业使用场景进行彻底剖析和实战;

10,从SharedPreferences到内部文件系统,从SDCard操作到SQLite数据库,从XML和JSON的解析于生成到数据共享统一接口ContentProvider,对Android本地的数据处理方式进行地毯式轰炸;

11,通讯录的操作的原理、流程和场景等进行了情景再现性的代码实战;

12,通过Android手机卫士商业级别的代码案例实战Android中BroadcastReceiver和Service;

13,根据过去20多款程序的商业实战总结出了能够解决基于HTTP协议的任意文件类型、任意大小文件的网络上传和下载,Android网络开发从此一劳永逸;

14,实战WiFi数据交换;

15,尤其是额外提到异步http框架,具备很强的商业价值;

   16,Android横竖屏切换的经典场景、生命周期和解决方案;

          17,实战构建多语言国际化的Android应用程序;

          18,如何编译APK来提高应用的安全性;

          19,如何反编译Android应用

    20,通过Android中WebView的特性洞悉Android中JavaScript与Java相互沟通的密码,追寻浏览器和HTML5开发的架构和技术实现根源;

          21,使用NDK等技术利用C/C++的高效性来提高应用程序的性能;

          22,实现Android中以Looper、Handler、Message、MessageQueue为核心的线程间通信方式;

          23,实战并剖析AsyncTask框架实现的源代码,并提出对AsyncTask缺陷的解决方案;

          24,Android应用程序启动过程揭秘

          25,Android Application Framework揭秘

26,Android应用程序开发最佳实践;

          27,最后,揭秘Android应用程序一切行为背后的核心根源:ActivityManagerService

 

课程目标:

1,  从Android企业级生产环境的角度循序渐进的揭秘掌握Android应用程序开发

2,  通晓Android的架构哲学和力量来源以及实现技术;

3,  能够开发出任意类型、任意复杂程度的安全、高效的应用程序;

4,  根据过去的20多款Android商业应用软件的实践,提供弥足珍贵的源代码,上完课程即相当于完成了Android应用项目80%左右的开发,所有的开发难点一扫而光;

课程要求:

对Android有强烈兴趣,能够读懂基本的C#或Java语法;

 

王家林老师

Spark亚太研究院院长和首席专家,中国目前唯一的移动互联网和云计算大数据集大成者。

在Spark、Hadoop、Android等方面有丰富的源码、实务和性能优化经验。彻底研究了Spark从0.5.0到0.9.1共13个版本的Spark源码,并已完成2014年5月31日发布的Spark1.0源码研究。

Hadoop源码级专家,曾负责某知名公司的类Hadoop框架开发工作,专注于Hadoop一站式解决方案的提供,同时也是云计算分布式大数据处理的最早实践者之一;

Android架构师、高级工程师、咨询顾问、培训专家;

通晓Spark、Hadoop、Android、HTML5,迷恋英语播音和健美;

致力于Spark、Hadoop、Android、HTML5的软、硬、云整合的一站式解决方案;

超过10本的IT畅销书作者;

 

课程大纲:

时间

内容

备注

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第一天

第1个主题:Android中启动一个新的应用程序揭秘60分钟)

1 当我们触摸Android屏幕中Launcher上的一个应用程序的图标的时候到底发生怎样的调用过程?

2 应用程序的执行入口到底在哪里?

3 一个新的Android应用程序的进程到底是怎么产生的?

 

第2个主题:Activity生命周期剖析、应用程序生命周期剖析以及应用程序开发最佳模式60分钟)

1.Activity生命周期周期图分析

2.Activity生命周期测试代码

3.Activity嵌套生命周期

4.应用程序生命周期剖析

5.不同Activity之间的相互沟通

6.对Android管理应用程序和Activity方式的思考

7.Android应用程序开发的最佳模式

 

第3个主题:Android商业化高级UI实战:ListView异步加载技术30分钟)

1. 使用ListView异步加载技术的必要性

2. ListView异步加载技术编程实战

 

第4个主题:Android商业化高级UI实战:ListView分页加载技术30分钟)

1. 使用ListView分页加载技术的必要性

2. ListView分页加载技术编程实战

 

第5个主题:Android商业化高级UI实战:Fragment30分钟)

1  Fragment出现的重要意义和运用场景
2  动态创建Fragment

3 使用Fragment创建选项卡

4  Fragment的向下兼容

5  Fragment的生命周期

6  Fragment之间的通信

 

第6个主题:自定义UI60分钟)

1. UI自定义的原理和机制

2. UI自定义实战

3. 动态UI

4. 不同屏幕的适配

 

第7个主题:Drawable和基本图形系统的配合60分钟)

1 可绘制内容的含义与用途

2 使用xml表示基本的可绘制内容

3 使用xml表示扩展的可绘制内容

4 使用代码构建的可绘制内容

5 Drawable的技巧

 

第8个主题:动画的技巧60分钟)

1 动画的定义和分类

2 控件动画

3 布局动画

4 动画的可绘制内容

5 在活动中使用的动画

 

第9个主题:2D图形绘图的技巧和优化60分钟)

1 颜色效果在Android中的含义

2 区域操作的方法,对性能影响,程序结构优化

3 位图画布和回放画布的区别

4 2D图形绘制性能影响

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第二天

第10个主题 :SharedPreferences、手机内部文件的形式存储数据操作、SDCard操作、单元测试60分钟)

1.SharedPreferences的读

2.SharedPreferences的写

3.对SharedPreference操作权限分析

4.读写不同包中的SharedPreference

5. SharedPreference源代码剖析

6.对手机的文件进行读写:openFileInput()、openFileOutput()

7.对文件读写的单元测试

8.对四种文件权限模式的测试

9.常用的文件读写API简介

10.剖析源代码

11.使用Activity调用业务层对SDCard进行读写

12.单元测试

 

第11个主题:SQLite管理工具类、CRUD操作、分页等及源代码剖析、使用Android自身提供的API进行CRUD操作、ListView的详细讲解及源代码剖析60分钟)

1.SQLite简介

2.SQLiteOpenHelper类

3.CURD:execSQL()和rawQuery()

4.分页

5.对getWritableDatabase()和getReadableDatabase()进行源代码分析,剖析其原理

6.执行流程和原理的深入彻底的剖析

7.源代码剖析

8.使用Android自带的insert、update、query、delete等进行CRUD操作

9.剖析insert、update、query、delete的源代码

10.对ListView深入详细的剖析,自定义视图,自定义Adapter。

11.剖析Cursor的源代码

12.关于SQLite和Cursor的“_id”问题的剖析和解决方案

 

第12个主题:使用Android内置的pull实现对XML文件的读、写及源代码剖析 Android中JSON解析60分钟)

1.为什么在Android中对XML文件的读、写首选pull

2.用pull实现对XML的解析

3.用pull实现对XML的写入

4.使用写入器Writer实现文件的写入已经把内容直接写入内存中

5.采用短点调试的方式剖析PULL的解析流程

6.源代码剖析

7.Android下JSON解析代码模板

 

第13个主题:ContentProvider背景、用途,如何构建ContentProvider,UriMatcher,ContentUris,对CotentProvider进行单元测试、源代码分析60分钟)

1.ContentProvider背景、用途

2.构建ContentProvider的详细步骤

3.对URI的彻底剖析

4.分析UriMatcher,ContentUris

5.对ContentProvider的业务层代码进行单元测试

6.ContentProvider的源代码剖析

 

第14个主题:基于通讯录的开发60分钟)

1. 通讯录的数据库和数据表分析

2. 通讯录ContentProvider的源码剖析

3. 获取所有的联系人信息

4.添加联系人

5.如何处理添加通讯录记录时的事物问题

 

第15个主题:性能测试和优化60分钟)

1. 如何进行性能测试

2. 性能测试实战

3. 优化法则和编码应该注意的地方

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第三天

第16个主题:广播接受者BroadcastReceiver,短信监听器案例(接受到短信后上传到服务器或发送到指定的号码或者发送到指定的邮件中)60分钟)

1.剖析广播接收者,与JMS的比较,广播接受者的IoC原理

2.短信监听Android客户端

3.服务器端搭建

4.通过网络把接收到的短信上传到服务器

5.把接收到的短信发送到指定的手机号码或者邮件中

6.BroadcastReceiver的的生命周期和注意事项以及5秒钟生命响应时间的解决方案

7.服务中的ANR问题及其解决方案;

 

第17个主题:服务Service,电话监听器(每次开机的时候自动开机,电话来时录音并上传到服务器)60分钟)

1.详细剖析Service

2.构建电话监听的Service

3.使用BroadcastReceiver监听开机事件,并在开机时启动电话监听的Service

4.上传音频文件到服务器

5.关于Android安全体系的思考

 

第18个主题:Aidl的双向通信60分钟)

1 Message和服务结合的方式

2 IntentService的命令方式

3 Service和BroadcastReceiver的结合

 

第19个主题:使用AIDL开发远程服务60分钟)

1.AIDL底层原理:基于Binder的Proxy-Stub

2.使用AIDL编写的具体步骤

3.动手编写服务端和客户端

4.测试并调试

 

第20个主题:断点续传(一)类似迅雷的多线程下载器(适用于任何类型的文件下载)120分钟)

1,多线程下载断点续传原理和流程图

2,下载文件时Http协议协议详解

3,多线程下载断点续传程序:设计服务端和Android端

4,Android端的内容涉及IoC、多线程、SQLite数据库、Handler、Http协议、缓存处理、意外关机时候的处理、编写框架、MVC、Service、Android中的I/O流、代码调试、Activity的生命周期等

5,单元测试

6,软件调试

 

第21个主题:Android客户端表单数据的上传60分钟)

1 上传基本的数据类型

2上传图片等附件

3 把代码重构为能够上传任意数量的字段和任意数量的附件的工具类

4 思考本地离线存储/在线上传的技术方案

 

第22个主题:httpclient和异步http框架90分钟)

1,使用httpclient提交数据到服务器

2,异步http框架实现原理

3,异步http框架提交数据到服务器

4,httpclient框架核心源码剖析

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第四天

第23个主题:Android中Java与WebView中Javascript相互沟通60分钟)

1.制作Android界面的新大陆

2.Java调用Javascript

3.Javascript调用Java

 

第24个主题:Android中的JNI编程60分钟)

1 Java调用C/C++

2 JNIEnv、JVM、JObject揭秘

3 C/C++创建Java对象、调用Java属性和方法

4 JNI中的多线程编程

5 Facade Pattern在JNI中绝妙应用剖析

6 PnP(Plug and Play)

 

第25个主题:Android ndk编程(60分钟)

1 本地C代码调用Java中的Method

2本地C代码获得Java对象的属性值

3 多个类中有本地C代码的调用

4 在本地代码中创建Java对象

5深度剖析Java、Dalvik VM、C/C++的运行机制与流程

6 Java中分配线程调用C/C++函数

7 C/C++本地代码通过分配线程调用Java函数

 

第26个主题:Android横竖屏切换、应用国际化、软件的编译和反编译60分钟)

1.Android横竖屏切换的经典场景、生命周期和解决方案;

2.实战构建多语言国际化的Android应用程序;

3.如何编译APK来提高应用的安全性;

4.如何反编译Android应用

 

第27个主题:Handler、Looper、Message、MessageQueue60分钟)

1. Android的事件驱动模型

2. Looper、MessageQueue、Hanlder、Message等源码深度剖析

3. Looper、MessageQueue、Hanlder、Message及多线程实战案例

 

第28个主题:AsyncTASK异步线程技术60分钟)

1. 使用AsyncTask的原因及对AsyncTask的思考

2. AsyncTask代码示例

3. AsyncTask框架源码剖析

4. AsyncTask框架框架的不足与改进

 

 

 

 

 

 

 

 

 

 

 

第五天

第29堂课:Android应用程序开发的最佳模式90分钟)

1、Main Thread+HandlerThread

2、剖析HandlerThread的源码实现

3、使用HandlerThread的最佳实践

 

第30堂课:Android应用程序的灵魂消息驱动机制60分钟)

1、为何消息驱动是框架和应用程序的灵魂

2、以Android的ActivityThread、Looper、Handler、MessageQueue为例说明消息驱动机制

3、源码深度剖析ActivityThread、Looper、Handler、MessageQueue

4、消息驱动机制的启示

 

第31堂课:应用程序开发框架实例研究:Android Framework 架构原理分析60分钟)

1、Proxy Object与Android Service的模式的关系

2、Handler 与 Message 的解析与实作细节

3、 Introduction to Software Framework

4、软件框架实战: IoC、扩展性与不可修改性

5、先设计(Design)后实现(Implementation)

5 、Doing Long Operations

6、 Design Patterns of Android Framework

 

第32堂课:框架中服务管理实例研究:Android Service 架构 SystemServer 整合开发60分钟)

1、Zygote & SystemServer 介绍

2、ServiceManager介绍                  

3、IPC、Remote method call与Binder管理说明

4、AIDL 介绍与IInterface设计观念解析

5、Activity & ApplicationContext

6、ServiceManager

 

第33堂课:框架中的服务整合实例研究:Android Service模式下框架整合60分钟)

1、 Android Service Model 解析

2、 Why use IPC ?

3、 How to do Blocking IO?

4 、How to do Data Polling?

5、 Using Child Thread for Async Method Call

6、 Callback and Interface Design

7、 Thread-Safe 观念与实现

 

第34堂课:Android应用程序运行背后秘密---ActivityManagerService源码剖析150分钟)

1  Android应用程序的main入口到底在哪里?

2 ActivityThread成为应用程序的主线程的过程是什么?

3 Looper、MessageQueue、Handler背后的秘密;

4 Android的Activity、Service、Provider、Receiver启动的流程源码剖析

 

 

 

 

 


 

王家林最受欢迎的一站式云计算大数据和移动互联网解决方案课程 V4之Android企业级高级应用开发最佳实践(5天)--0905Final修订版本