1.官方开发工具Android Sudio,推荐开发语言Kotlin。
2.用户界面采用MVC模式,界面元素通过View和viewGroup构成树形组织结构,使用xml描述用户界面。
3.界面布局
- 线性布局:垂直和水平布局
- 相对布局:最灵活的一种布局方式
- 帧布局:用于比较简单的布局,例如引导页。
- 网格布局:可以取代表格布局
- 百分比布局
- 表格布局
- 绝对布局:可以舍弃
- 嵌套布局:实现复杂界面,多种布局组合
- 约束布局:相对布局升级版,解决复杂界面绘制效率低的问题,功能强大但是比较麻烦
4.Android组件
- Activity:应用程序表示层
- Service:后台运行,可触发通知
- Content Provider:可共享的数据存储
- Intent:应用程序间消息传递
- Broadcast Receive:Intent广播的消费者
- Notification:用户通知框架
Activity是业务类,一个应用通常有多个Activity,每个Activity围绕一个特定功能设计。
Intent是Android程序中各个组件之间进行交互的一个重要方式。
Android的Service分为IntentService和Service,IntentService是继承并处理异步请求的一个类。
5.Android事件处理机制有两种:基于监听接口和基于回调机制。
6.Android应用程序有两类线程:主线程和工作线程。
7.线程和进程之间不能直接传递消息,必须通过消息队列和消息循环的操作完成。Android提供了Handler类和Looper类来访问消息队列。
8.Android开发中一般主线程不做耗时的操作,子线程不更新UI。子线程可以使用Handler来实现UI更新。
9.单个异步后台处理使用AsyncTask,多个异步后端处理使用Handler。
10.Adapter数据适配器建立数据源与ListView之间的适配关系,ListView是Android中最常用的空间之一。
11.使用组件必须在AndroidMainFest。xml文件中注册服务。
12.Android数据存储方式
- SharedPreference:轻量级存储,主要保存常用的配置参数,采用xml文件存放
- 文件存储:
- SQLite:开源、轻量级、嵌入式的关系型数据库
- ContentProvider:数据共享,应用程序间唯一的共享数据途径,主要功能就是存储并检索数据以及向其他用用程序提供访问数据的接口
- 网络
LitePal是一款开源的Android对象关系映射管家。
13.Android动画
- Graphics类:全能的绘图类,提供了基本的集合图形绘制
- DrawAble:帧动画
- SurfaceView:游戏开发中一般使用它,可以在非UI线程中绘制并显示在界面上
- AnimatedVectorDrawable:矢量动画
- OpenGL ES:三维动画
14.Android多媒体
- 视频播放器:MediaController+VideoView,MediaPlayer+SurfaceView,Bilibili轻量级视频播放器Ijkplayer
- 录像录音:MediaRecorder
- 二维码识别:ZXing
- TTS文字识别:讯飞语音+
- 语音识别:谷歌Voice Recognition
15.Android权限分为两种,普通权限不涉及用户隐私,在AndroidMainfest.xml中声明即可,例如网络、蓝牙、NFC、振动等;危险权限涉及到用户隐私,需要用户授权。
16.Json解析框架:JSONObject和GSON
17.Http请求:OkHttp框架、Retrofit框架、HttpUrlConnection类
18Android控件
- ListView:利于扩展和维护
- GridView
- RecyclerView:比GridView和ListView更为灵活
- CardView
- ViewPager:可以左右切换当前的View
- BottomNavigationView:底部导航
- TabLayout