阅读更多 一、 第一章 使用Android平台基础开发
1. 简介:
1) Android本义:机器人;
2) Android意义:Google与2007年11月5日宣布的基于Linux平台的开源手机操作系统名称;
3) Linux平台组成操作系统、中间件、用户界面和应用软件;
4) Android的标志:绿色 、机器人;
2. Android架构:
1) 和其它操作系统一样,Android的系统采用的是分层的架构;
2) 架构组成:(从高层到底层)(
a) 应用程序层;
b) 应用程序框架层:隐藏在每个应用后面的是一系列的服务和系统;
c) 系统运行库层;
d) Linux核心层;
3. Android应用程序:
1) 简称:Android App,是一种运行在Android平台的应用软件;
2) SDK  :  software development kit;
3) ADB : Android Debug Bridge,调试桥的作用;是一个客户端-服务器端程序;
4) AAPT : Android Asset Packaging  Tool,在SDK platform-tools 目录,用于打包apk文件,构成一个Androi应用程序;
5) AVD : Android Virtual Device:android虚拟设备;
4. Android的环境搭建:
1) JDK安装;
2) Eclipse安装;
3) Android SDK安装;
4) ADT安装;
5) 创建AVD;
二、 第二章 使用Activity打造Android窗体
1. Activity简介:
1) 一个Activity是一个应用程序组件,提供一个屏幕,供用户进行交互;
2) 一个应用程序由多个Activites组成,关系:松耦合关系;
3) 在系统中的Activity被一个Activity栈所管理;特点:先进后出;
4) Activity是单独的,用于处理用户操作;几乎所有的Activity都和用户打交道;
2. Android 的生命周期:
1) Activity四种本质区别的状态:
a) 活动状态:在屏幕前台;
b) 暂停状态:被透明或非全屏遮盖;
c) 停止状态:完全被另一个Activity抹杀;
d) 重置状态;
3. Android中资源的访问:
1) 代码中使用资源:android.R.资源文件种类.资源ID;
2) XML文件中引用:@android:资源种类/资源ID;
3) 提示:raw资源文件中存放任意类型的资源,目录中的资源不会被编译,可以通过调用Resource.openRawResource(int id) 获取资源二进制流;
4. Android中的菜单:
1) 选项菜单 options menu:点击设备上的Menu弹出的菜单;
2) 上下文菜单:context menu: 长按视图控件出现的菜单;
3) 子菜单 sub menu: 点击子菜单将弹出子菜单选项;子菜单不支持嵌套;
4) 提示:任何视图组件的创建方式都由两种:代码创建和布局文件创建;
5. Android简单用户界面设计:
1) Android中借用了java的UI设计思想,包括事件响应机制和布局管理;
2) View和ViewGroup采用了组合设计模式,可以使得”部分-整体”同等对待;
3) 对话框种类:Builder
a) 警告对话框;
b) 进度对话框;
c) 日期选择对话框:
d) 事件选择对话框:
4) 提示信息:Toast.make().show();
5) 事件处理:
a) 事件处理机制:事件、事件源、事件监听器;
6) 事件处理步骤:
a) 创建监听器:
b) 给要响应事件的组件注册事件监听器:
c) 在事件处理方法中编写实现代码;
6. 对话框详解:
1) 带编辑框的对话框:
2) 将布局文件放到对话框中:getLayoutInflater.inflater(R.layout.ID,null);
3) 注册:builder.setView(布局组件对象);
4) 列表对话框;setItems();
5) 带单选按钮对话框:
a) builder.setSingleChoiceItems();
6) 带复选框的对话框:
a) New builder().setMultichoiceItems();
b) 事件:OnMultichoiceListener;
7. 菜单详解:
1) 选项菜单:
a) 实现方法:onCreateOptionMenu();
b) 动作实现:onOptionsItemSelected();
2) 子菜单:
a) 实现方法:onCreateOptionMenu();
b) 动作实现:onOptionItemSelected();
3) 上下文菜单:
a) 实现方法:onCreateContexteMenu();
b) 动作实现:onContextItemSelected();
c) 组件注册:registerContextMenu(View v);
三、 第三章 使用Intent让窗体之间对话
1. 窗体之间的跳转
1) Intent intent = new Intent();
2) intent.setClass();
3) startActivity();
2. 窗体之间传递数据
1) Bundle对象的实现:用于封装数据
2) 将Bundle绑定到Intent的对象;
3) 提示:Intent对象可以携带任意数据类型,包括对象;
3. 实现数据双向交互:
1) 启动方式:startActivityForResult();
2) 重写方法:onActivityResult();
3) 被请求Activity实现:setResult(); 封装数据,并指明回去的路,同一个Intent对象;finish();标志完成任务;
4. Android高级组件设计:布局管理
1) View类
a) View为所有可视化类的基类,主要提供了控件绘制和事件处理;
b) ViewGroup也是View的子类,但是可以充当其它控件的容器;
2) 线性布局:LinearLayout
a) 最简单的布局,水平或垂直布局方式;
b) 通过设置weight控制各个控件在容器中的相对大小;
3) 表格布局:TableLayout
a) 行和列的形式管理;
b) Shrinkable:列收缩
c) Stretchable: 列拉伸;
d) Collapsed :列隐藏;
4) 相对布局:RelativeLayout
a) 子控件的位置相对兄弟控件或父控件决定;
b) 避免出现循环依赖;
5) 帧布局FrameLayout:
a) 帧布局大小由子控件最大的控件决定;
6) 绝对布局:AbuoluteLayout
a) 根据坐标大小定位;
b) Android:layout_x
c) Android:layout_y
d) 控件容器不再负责管理其子控件的位置;  
5. 组件设计:
1) TextView
2) EidtView
3) AutoCompleteTextView: 自动输入内容组件;
a) 使用数组适配器绑定数据;
4) 按钮组件:
a) Button
b) ImageButton
c) RadioButton :一个组中只能选择一个单选;
d) ToggleButton :textOn/textOff
e) CheckBox
5) 按钮组件事件:
a) onTouch 触摸事件
b) onFocusChange 焦点变化事件;
c) onKey 键盘事件;
6) 日期和时间组件:
a) DatePicker :用于输入日期的控件,包括年月日;
b) TimePicker :用于输入时间的控件,包括时钟分钟;
c) AnalogClock :用于显示时钟的组件,表盘方式;
d) DigitalClock :用于显示时钟的组件,数字方式,时分秒;
7) ImageView
8) ListView
9) Spinner: 示一个下拉列表,通过设置adapter数据适配器显示;
10) ScrollView: 动视图组件,只能包含一个组件,可以定义一个布局;
11) HorizontalScrollView:水平滚动视图组件,支持水平滚动;
12) GridView : 图控件,用于显示一个表格,采用二维方式来显示列表项,每个单元格是一个View对象;
13) Gallery: 像列表,与GidView的区别是只能显示一行,支持滚动效果;
14) ImageSwitcher : 以以动画方式切换图像;
15) TabHost: 件;对屏幕进行分页显示控件;
四、 第四章 使用Service进行后台服务
1. 简介:四大组件之一;
2. 特点:
1) 生命周期长;
2) 没有可视化界面,无法与用户直接交互;
3) 后台运行;
4) 数据交互;
3. 何时用:希望该应用在后台运行;
4. Service分类:
1) 本地service
a) 概念:和当前应用在同一个进程中的service,彼此之间拥有共同的内存区域,则对某些数据的共享特别的方便和简单;
2) 远程service
a) 主要用于不同进程之间的service访问;
b) 共享数据方式:使用AIDL工具,android interface description language ,接口描述语言;;
c) RPC简介:Remote Procedure Call ,远程进程调用是指在一个进程里,调用另外一个进程里面的服务;
5. 使用service步骤:
1) 继承service类,实现自己的service;
2) 在androidManifet.xml中注册;
a)
3) 在activity中进行启动、绑定、解绑或者停止service;
五、 第五章 使用BroadcastReceiver 进行广播
1. 自定义BroadcastReceiver
1) 简介:BroadcastReceiver 是指广播接收器,处理的是系统级别的;
2) 使用方法:
a) 构建Intent对象;Intent intent = new Intent();
b) intent.setAction();  参数:广播动作名称
c) sendBroadcast(intent);
3) 总结:
a) 既然要使用广播,就要一个发出广播的类(可以有多个),构建Intent对象,然后sendBraocast(intent对象);
b) 需要一个接收广播的类,这个类是继承了BroadcastRecevier,首先要接收intent中的信息;
c) 再者必须进行注册后才能使用;(四大组件之一)
4) 提示:可以使用代码的方式来注册或注销一个广播接收器;
a) IntentFilter filter = new IntentFilter();
b) 实例化:继承了BroadcastReceiver 的类;
c) 注册:registerReceiver(r,filter);
d) 注销:unregisterReceiver(r);
2. 通知与通知管理器
1) Notifaction 和 NotificationManager的使用:通知和通知管理器;
2) 作用:实现可视化信息的显示,通过它们可以显示广播信息的内容以及图标和震动等信息(在状态栏上);
六、 第六章 存储数据
1. SharedPreferences:
1) 概念:一种轻型的数据存储方式;key-value
2) 作用:存储一些简单的配置信息;
3) 存储位置:/data/data/包/shared_prefs
4) 特点:SharedPreferences对象本身只能存储,不能修改;
5) 提示:存储修改是通过Eidtor对象实现;
6) 缺陷:只能存储boolean .int.float.long.String 五种简单的数据类型;
7) 优势:方便、简洁;
2. File:文件存储
1) 从resource中的raw文件夹中获取文件,并读取数据
a) 注意:资源文件只能读不能写;
b) 获取流的方法:InputStream in = getResources().openRawResource(R.raw.a);
2) 从asset中获取文件并读取数据:
a) 流的获取:InputStream in = getResources().getAssets().open(文件名);
3) 从sdcard中读文件:
a) 存储位置:/mnt/sdcard/目录下
b) 流的获取:FileInputStream in = new FileInputStream(fileName);
c) 访问权限:
i.
d) 写入权限:
i.
4) 内存中操作文件:
a) 保存路径:\data\data\com.test\files\里面;
b) 流的获取:FileOutputStream fout = openFileOutput(filename,MODE_PRIVATE);
5) 提示:openFileOutput 是在raw里编译过的,FileOutputStream 是任何文件都可以;
3. SQLite:
1) 简洁:一个非常流行的嵌入式数据库,支持SQL语言,利用内存少,性能好;
2) 特点:和其他数据库最大的不同是对数据类型的支持;
3) 不支持的SQL功能:外键约束、嵌套、联表查询;
4) Android 中集成了SQLite数据库;
a) 获取SQLiteDataBase 实例:
i. SQLiteDataBase db = getReadableDatabase();
ii. SQLiteDataBase db = getWriteableDatabase();
七、 第七章 使用ContentProvider 共享数据
1. 概述:Android应用继承了ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据;
2. URI:代表要操作的数据;
3. UriMatcher 类使用介绍:
1) 用于解析URI;
2) 方法:match(); 用于匹配URI , 返回指定的返回码;
3) AddURI(uri,表,返回码);  添加规则;
4. ContentUris 使用介绍;
1) withAppendId(uri,id); 用于为路径加上ID部分;
2) parseId(uri);  从该路径部分获取ID;
5. ContentResolver 操作ContentProvider:
1) 对ContentProvider中的数据进行添加、删除、修改和查询操作时、需要使用ContentResolver;
6. 自定义ContentProvider:
1) 建立数据的存储系统;
2) 扩展ContentProvider类;
3) 在应用程序中注册: 四大组件之一;
7. 提示:不管数据表中有没有其他的唯一标识一个记录的字段,都应该定义一个_id ,字段来唯一标识一个记录;
8. INTEGER PRIMARY KEY AUTOINCREMENT;
9. 注意:因为ContentProvider 可能被不同的进程和线程调用,所以这些方法必须时线程安全的;
八、 第八章  多媒体应用
1. Android 音频与视频的播放
1) 播放的文件种类:
a) 存储在应用程序中的资源;
b) 本地资源;
c) ContentProvider资源;
d) 网络的URL流中的资源;
2) 媒体播放步骤:
a) 初始化;
b) 完成准备播放;
c) 开始播放;
d) 播放时进行暂停、停止,以及定位;
e) 播放完成; 
3) 音频的播放:
a) 方式一:new MediaPlayer().setDataSource(); 设置文件源;
b) 方式二:MediaPlayer.create(); 通过uri获取地址;
c) 提示:文件sd根目录一定要进行prepare(); 方法,为硬件准备;
4) 视频的播放:
a) 视图控制器:VideoView;
b) 媒体控制器:MediaController :提供按钮 ;
5) 访问网络上的Audio 对应的M3U文件:
a) 根据URL访问网络;
b) 对网络文件进行解析;
c) 显示解析结果;
d) 知识点:
i. HttpClient client = new DefaultHttpClient();
ii. HttpGet get = new HttpGet(url);
iii. HttpResponse response = client.execute(get);
6) Android  中音频与视频的录制;
九、 第九章 使用互联网组件与服务器交互
1. Http 网络编程:
1) Socket 套接字:
a) 概念:是用于描述网络上的一个设备中的一个进程或者应用程序的,Socket 由IP 地址和端口号两部分组成;IP地址定位设备,端口号定位应用程序或者进程;
b) 提示:Server端会一直监听Socket中的端口直到由请求为止,收到请求后返回一个Socket对象,Server 和 Client 可以通过Socket进行操作;
c) ServerSocket.accept();返回一个连接的Socket对象;
2) HttpURLConnection :
a) 简洁:是继承自URLConnection 的一个抽象类,在HTTP编程时,来自HttpURLConnection的类是所有操作的基础;
b) 获取方式:HttpURIConnection conn = (HttpURIConnection) new URL(“http://baicu.com”).openConnection();
3) WebView使用:
a) 浏览器控件:每个开发环境都具备的;
b) 添加权限:android.permission.INTERNET;
c) 获取焦点:requestFocus();

更多相关文章

  1. 【Android】gravity、layout_gravity 以及 left、start的区别
  2. android 自定义组件 :对VelocityTracker的研究
  3. android基础入门(二)――创建android工程
  4. 【Android布局】在程序中设置android:gravity 和 android:layout
  5. [置顶] android Studio 配置LUA 开发环境
  6. Android(安卓)自定义ViewGroup 实战篇 -> 实现FlowLayout
  7. Android界面开发简介
  8. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入S
  9. Android开发手记一 NDK编程实例

随机推荐

  1. Android中当item数量超过一定大小Recycle
  2. Android利用VideoView实现VideoPlayer
  3. Android(安卓)View的事件分发机制探索
  4. Android(安卓)四大组件——Service 生命
  5. fitsSystemWindows的理解与沉浸式状态栏
  6. S4国行移动版i9508安装Android(安卓)7.1.
  7. Android——最新LitePal使用
  8. android浮动搜索框
  9. android 老是弹出 "Copy" did not comple
  10. [转]]Android 应用签名提权方法