第一章 第一行Android代码
1.安卓系统架构
Linux内核层: 为Android设备硬件提供底层驱动,
系统运行库层:通过一些C/C++库为Android提供特性支持,
如SQLite数据库支持,OpenGL|ES库提供3D绘图支持,Webkit库提供浏览器内核支持,
这一层还有android运行时库,Dalvik虚拟机(5.0后改为ART运行环境)
应用框架层:Android的各种API,
应用层:系统自带或开发的程序。
2.四大组件
活动(Activity), 服务(Service), 广播接收器(Broadcast Receiver), 内容提供器(Content Provider).
四大组件都需要在AndroidManifest.xml文件进行注册。
3.运新荷兰loworld
安装Android Studio,创建模拟器,创建运行程序。
Android Studio的项目结构默认的android界面是虚拟结构,可以切换到Project为真实物理存储结构。
第二章 Activity
1.Activity有Java类和Layout文件组成。Toast用来显示一个短信息。
2.创建一个menu资源,重载onCreateOptionsMenu()方法,通过getMenuInflater().inflate(R.menu.main,menu)显示出来。
重载onOptionItemSelected方法处理菜单响应。通过调用finish()方法可以销毁一个Activity。
3.通过Intent在Activity之间迁移并携带数据。
显示intent主要用于Activity直接迁移,隐式intent还可以打开各种系统内置动作。
4.Activity状态
运行状态, 暂停状态, 停止状态, 销毁状态。
5.Activity生存期
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()。
完整生存期,可见生存期, 前台生存期。
NormalActivity启动时,前一个Activity执行onPause(),onStop(),
DialogActivity启动时没有完全挡住前一个画面,只执行onPause()。
5.活动被回收的对应方法
onSaveInstanceState()方法中,把数据保存到Bundle中,在以后的onCreate方法中载入数据。
6. 活动的启动模式
standard, singleTop, singleTask, singleInstance.
第三章. UI开发
1.常用控件
TextView, Button, EditText, ImageView, ProgressBar, AlertDialog, ProgressDialog.
2.界面布局
2.1 LinearLayout:排列方向是horizontal时,只有垂直方向的对齐方式有效,vertical时,只有水平方向的对齐方式有效。
2.2 RelativeLayout: 通过相对定位的方式让控件出现在布局的任何位置。
2.3 FrameLayout: 所有控件都会默认摆放在左上角,应用场景较少。
2.4 百分比布局:PercentFrameLayout和PercentRelativeLayout。
3.自定义控件
3.1可以通过新建一个共通的layout文件如带有返回,编辑按钮的标题栏,其他Activity可以include此共通layout。
3.2也可以添加自定义类的方式创建自定义控件。
4. ListView控件用法
最简用法:创建ListView布局,onCreate()中创建ArrayAdapter填充数据,取得ListView控件并与数据关联。
定制ListView:创建显示文字和图片的layout和类,创建FruitAdapter类,填充数据并传给ListView。改进ListView性能。
点击处理:onCreate()中重载ListView的onItemClick()函数。
RecyclerView:加强版ListView,可以横向滚动,性能也很高,官方推荐使用。
需要添加依赖:compile 'com.android.support:recyclerview-v7:24.2.1',layout中引用android.support.v7.widget.RecyclerView。
5. Nine-Patch图片,气泡样式的图片,可以指定哪些区域不可拉伸,哪些区域可以拉伸。使用RecyclerView制作聊天界面。
第四章 Fragment
1. 碎片(Fragment): 通常在平板程序中使用,类似于miniActivity。
系统内置Fragment:Android4.2系统之前的设备运行会崩溃。
android.support.v4.app.Fragment:兼容所有版本,建议使用。appcompat-v7库已经包含了这个库。
实践:MainLayout中放一个left_Fragment显示标题列表,放一个right_Fragment显示内容。