Android7_安卓的知识体系梳理
最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据。
【一、从原理角度出发】
1、Activity生命周期和启动模式
2、View的事件体系与工作原理
3、四大组件的工作过程
4、JNI和NDK编程       //
5、线程与线程池       //多线程编程、线程同步问题、
6、消息机制           //主要是讲Handler、MessageQueue,继续深入挖掘底层原理
7、IPC机制            //序列化、Binder、AIDL的使用、选择合适的IPC(RPC场景)、哪些分类(Bundle、Messager、文件共享、ContentProvider、Socket、AIDL);
【二、从实操角度出发】
0、入门操作
	0.1、搭建开发环境;//开发工具、调试工具及各小工具等;
	0.2、创建项目;//gradle、配置、编译;
	0.3、掌握日志工具的使用;
	0.4、应用程序签名机制;
	0.5、应用目录结构分析 //各项资源res、清单文件等
1、使用网络技术
	1.1、TCP协议基础;使用serversocket创建tcp服务端;使用socket进行通信;
	1.2、URL、手动发送HTTP请求:HttpURLConnection的用法、OkHttp也是很常用的网络通信库,了解其基本用法;
	1.3、JSON、XML格式数据的解析;//Pull&SAX解析;JSONObject和GSON解析;
	1.4、WebView控件的使用;//在应用里嵌入浏览器,方便展示各种网页;
	
2、多媒体开发
	2.1、将程序运行到手机上;
	2.2、使用通知功能;
	2.3、调用摄像头和相册;
	2.4、多媒体播放:音频、视频;
	
3、定位应用开发LBS
	3.1、网络定位与GPS定位;
	3.2、支持GPS的API(LocationManager、LocationProvider);
	3.3、申请API Key以便使用谷歌或百度Map的服务;
4、界面编程的各种控件Widget
	4.1、常见控件的使用; //EditText、Button、TextView、ImagaView、ProgressBar、ListView、RecyclerView、AdapterView、
	4.2、4大布局;        //布局文件的使用;
	4.3、自定义控件;
	4.4、杂项组件的使用;//Toast、CalendarView、DatePicker、TimePicker、NumberPicker、SearchView、TabHost选项卡、ScrollView、
	4.5、对话框;        //AlertDialog、ProgressDialog、
	4.6、菜单;          //PopupMenu、XML定义菜单、
	4.7、ActionBar;     //活动条
5、四大组件——活动
	5.1、建立、配置、使用Activity;
	5.2、活动的生命周期和启动模式;
	5.3、不同活动之间的切换;Intent(启动活动、还可以在活动间传递数据);
	5.4、碎片Fragment相关;//平板中使用
	
6、事件处理模型:
	6.1、监听与回调事件;系统事件与用户事件;  //解决多线程下线程安全问题,只允许UI线程修改activity里的UI组件,把事件分发到对应组件中处理;
	6.2、Handler消息机制;                     //解决主线程与子线程之间的问题;子线程解决耗时操作问题;子线程要修改UI的方式;
	6.3、异步任务                              //一种抽象类,更加简单的异步处理,甚至不需要借助线程与Hnadler;
	
7、	一些类的使用:
	7.1、Intent/IntentFilter; //用Intent传递对象
	7.2、Bundle;
	7.3、Binder/BinderPool;
	7.4、Handler、Message;
	7.5、CountDownLacth;
8、	四大组件——广播接收器与广播机制
	8.1、广播机制介绍;   //全局与本地广播、系统与自定义广播;
	8.2、广播发送与接收; //BrocastReceiver、
	8.3、系统广播消息;   //有哪些系统广播消息,如何接收系统广播消息
	
9、数据存储——持久化技术
	9.1、文件存储;
	9.2、SharedPreference存储;
	9.3、SQLite数据库的使用、SQL语句;
	9.4、LitePal框架使操作数据库更简单;
	
10、四大组件——内容提供器
	10.1、运行时权限机制;
	10.2、访问其他程序中的数据; //contentresolver、Uri、
	10.3、创建自己的内容提供器; //contentprovider 来自程序、来自系统;
	10.4、监听数据改变           //contentobserver
	
11、四大组件——服务
	11.1、服务的基本用法         //创建、配置、启动、停止、绑定本地服务
	11.2、服务的生命周期
	11.3、前台服务、Intent服务   //上面的服务涉及的是本地服务;
	11.4、活动与服务通信Binder
	11.5、服务类型              //系统提供的服务、自己创建的服务、服务分类(本地、Remote)
	11.6、介绍一些系统提供的服务 //电话管理器、短信管理器、音频管理器、振动器、手机闹钟服务
	11.7、跨进程调用服务;       //学会使用AIDL接口进行跨进程通信
	
	
【三、专题技巧探究】
1、MaterialDesign
2、Context的使用技巧
3、定制日志工具
4、如何调试安装程序
5、如何创建定时任务
6、图形与图像处理
7、ANR问题
===================================================
【推荐几本安卓的学习书籍】
《第一行代码Android》:适合小白初学者入门的书籍、实践性较强,建立感性认识;
《疯狂的Android讲义》:实践也较多,也穿插一些机制和组件的讲解,不会讲太深。适合第一本读完之后再读这本,差不多安卓就入门成功了;
《安卓开发艺术探索》:这本书侧重讲解一些有深度的机制与工作原理。非常适合入门后补足理论用;
《Android系统源代码情景分析》:更有理论深度,深入源代码中结合使用场景讲解整个应用框架的原理;
【知名博主传送门】
蜗牛搬家:https://my.oschina.net/u/2002921?tab=newest&catalogId=2306416
罗升阳:https://me.csdn.net/luoshengyang
【Tips】
查阅安卓官方开发指南文档:
	安装时勾选"Documentation for Android SDK";
	Android SDK安装目录中找到docs子目录,docs子目录下打开index.html页面。就可以查看开发指南文档首页了;
===================================================
源码与SDK研究
【源码、SDK相关操作】Android知识结构(SDK、系统源码):https://blog.csdn.net/fandyvon/article/details/7579311
Windows系统下查看安卓系统源码:https://blog.csdn.net/freekiteyu/article/details/70939672
安卓系统架构与系统源码目录:https://www.cnblogs.com/xiongwei/p/9101013.html
Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介:https://www.cnblogs.com/andy-songwei/p/9911386.html
安卓SDK由几层基础架构构成:https://blog.csdn.net/w1043203101/article/details/79471594
安卓SDK目录具体结构及安卓源码的具体结构:https://www.cnblogs.com/zhaowan/p/4561513.html
安卓系统源码下载到编译:https://blog.csdn.net/xx326664162/article/details/86354616
自己动手编译Android源码:https://blog.csdn.net/weixin_30549657/article/details/95578821
====================================================
JAVA编译过程
Java中的.class文件详解:https://blog.csdn.net/xingkongdeasi/article/details/79688505
java编译过程(字节码编译和即时编译):https://www.cnblogs.com/straybirds/p/8513870.html
Jvm、Dalvik和Art的区别:https://www.jianshu.com/p/59d98244fb52
编译包括两种情况:
1、源码编译成字节码(javac负责编译,给JVM看;另外对于移动设备,会用dex编译器将class文件(java字节码)编译成dalvik 字节码)
2、字节码编译成本地机器码
还有一些反编译与代码保密性问题;
====================================================
学习路线链接:
Android思维导图: https://www.jianshu.com/p/9cdeaf62cd92
Android 思维导图 一张图帮你复习Android知识体系:https://blog.csdn.net/qq_22007419/article/details/79940976
Android 技能图谱学习路线:https://www.jianshu.com/p/88e32ef66ef2
安卓面试:https://www.jianshu.com/p/cfac5c131a9b
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号