第一天:
前言
dalvik虚拟机
1> 搭建Android开发环境
2> 创建与启动手机模拟器
屏幕分辨率
HVGA:320×480
QVGA:240x320
WQVGA400:240X400
WQVAG432:240X432
WVGA800: 480X800
WVGA854: 480X854
src/ java原代码存放目录
gen/ 自动生成目录
gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
res/ 资源(Resource)目录
在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。具体请看ppt下方备注栏。
assets资源目录
Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp
AndroidManifest.xml 项目清单文件
这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。
default.properties 项目环境信息,一般是不需要修改此文件
webkit浏览器
显示单位
px (pixels)像素
一般HVGA代表320x480像素,这个用的比较多。
dip或dp (device independent pixels)设备独立像素
这个和设备硬件有关,一般为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
sp (scaled pixels — best for text size)比例像素
主要处理字体的大小,可以根据系统的字体自适应。
除了上面三个显示单位,下面还有几个不太常用:
in (inches)英寸
mm (millimeters)毫米
pt (points)点,1/72英寸
为了适应不同分辨率,不同的像素密度,推荐使用dip ,文字使用sp。
打开Android模拟器时,出现无信号,拔打电话或发短信时,提示“尚未注册网络”错误信息的解决方案如下。
场景一:你的电脑没有连接上互联网,同时也没有在局域网。
解决办法:右键点击网上邻居,选择"属性",在网络连接窗口中右键点击"本地连接",选择"属性",设置TCP/IP属性如下:
IP地址:192.168.1.100
子网掩码:255.255.255.0
默认网关:192.168.1.100
首选DNS服务器:192.168.1.100
场景二:你的电脑没有连接上互联网,但在局域网。
解决办法:右键点击网上邻居,选择"属性",在网络连接窗口中右键点击"本地连接",选择"属性",设置TCP/IP属性如下:
IP地址:设置成你所在局域网的IP,如:192.168.1.100
子网掩码:设置成你所在局域网的掩码,如:255.255.255.0
默认网关:设置成你所在局域网的网关,一般网关的IP格式为:*.*.*.1,如:192.168.1.1
首选DNS服务器:设置成你所在局域网的路由器IP,一般路由器的IP格式为:*.*.*.1,如:192.168.1.1
最后一种解决方案是:让你的电脑连接上互联网。
3> 学习使用ANDROID操作系统
桌面、电话拔号器、联系人(通信录)、
4> 开发与运行(卸载)第一个ANDROID应用 (Activity 类似于Action)
5> 项目的目录结构
6> 项目清单文件分析 项目清单文件在安装过程中被解释的
7> 分析第一个ANDROID应用的启动过程
StartActivity(context , new Compent(“cn.itcast” , “MainActivity”))
{
MainActivity.class.newInstance() ;
onCreate() ;
} 接着把实例放在stack
8> 电话拔打
9> 查看手机模拟器往控制台输出的日志信息
10> 如何部署应用到真实手机
1>安装手机的驱动到pc上
2>用一条usb连接线把手机连接到pc的usb接口上
三星 800M 180M android2.1
11> 短信发送
A.状态栏通知 B.对话框通知 C.吐西(Toast)
12> 布局介绍
LinearLayout (线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)
第二天:
1> 单元测试
2> 查看与输出日志信息 System.out / System.err / Log
3> 文件操作
4> 往SDCard读写文件
5> XML解析(SAX/DOM/PULL),写xml文件
6> SharedPreferences
第三天:
1> SQLite数据库添删改查操作
A.创建数据库
SQLiteOpenHelper .getReadableDatabase()或.getWritableDatabase()
B.SQLiteOpenHelper自动创建数据库的原理实现
C.数据库版本变化
D.编写代码完成添删改查操作(两种实现方法)
E.事务的实现
F.采用ListView实现数据列表显示
2> ContentProvider
A.把person表对外共享
B.访问ContentProvider
C.往通信录添加联系人,和获取联系人
第四天:
1> 网络--获取数据(图片、网页、xml、Json等)
A.从网络获取一张图片,然后显示在手机上
B.从网络获取网页的html代码,然后显示在手机上
C.案例:酷6网的视频客户端有一个功能:"在手机上显示最新的视频资讯",视频资讯是从服务器获取的,数据以xml格式返回给Android客户端,然后列表显示在手机上
>>最新资讯
喜羊羊与灰太狼全集 时长:60
实拍舰载直升东海救援演习 时长:10
喀麦隆VS荷兰 时长:40
D.以Json格式返回数据给Android客户端
2> 如何把数据通过HTTP协议提交到网络上的Web应用(get / post ) 数据大于2k的时候
A.通过Get方式提交参数给Web应用
B.通过Post方式提交参数给Web应用
<form method="post" action="....">
<input name="name" value="xxx"/>
</form>
C.使用HttpClient开源项目提交参数给服务器
3> 网络--通过HTTP协议实现上传文件数据
<FORM METHOD=POST ACTION="http://192.168.1.10:8080/video/manage.do" enctype="multipart/form-data">
<INPUT TYPE="text" NAME="name">
<input type="file" name="imagefile"/>
</FORM>
4> 网络--通过HTTP协议发送XML数据,并调用webservice (soap)
A.发送xml数据给服务器 ,并非以请求参数方式发送:http://192.168.1.10:8080/video/manage.do?xml=<xml>....</xml>
B.发送SOAP数据给服务器调用webservice,实现手机号归属地查询
第五天:
1> 网络--通过HTTP协议实现多线程断点续传下载
2> 网络--通过TCP/IP(SOCKET)协议实现断点续传上传(实现多用户并发访问)
3> 为应用添加新的Activity与参数传递
4> 意图
5> Activity的生命周期
第六天:
1> 广播接收者--BroadcastReceiver(实现短信窃听器)
2> 服务与语音刻录(实现电话监听)
1>无界面,不容易被用户发现 Service
2>对电话的来电状态进行监听,并且对用户的通话进行录音(MMI)
3>上传录音到服务器
3> 音乐播放器
4> 视频播放器
5> 拍照
第七天:
1> 视频录制
2> 手势识别
3> 国际化(文字、图片)、屏幕适配、样式与主题
4> 编码实现软件界面
5> 采用HTML设计软件界面, html --WebVIEW
file:///android_asset/
6> 传感器和拖拉功能实现
传感器类型:方向、加速度(重力)、光线、磁场、距离(临近性)、温度等。
方向: Sensor.TYPE_ORIENTATION
加速度: Sensor.TYPE_ACCELEROMETER
光线: Sensor.TYPE_LIGHT
磁场: Sensor.TYPE_MAGNETIC_FIELD
临近性: Sensor.TYPE_PROXIMITY
温度: Sensor.TYPE_TEMPERATURE
采样率:最快、游戏、普通、用户界面。当应用程序请求特定的采样率时,其实只是对传感器子系统的一个建议,不保证特定的采样率可用
7> 软件打包与发布,生成私钥签名你的软件