android系统的体系结构
- Application 应用层
- Application Framework应用程序框架层
- Libaries核心代码库 android Runntime运行时
- Linux ernel内核
android开发环境的目录结构
- build-tools编译需要用到的工具
- docs开发的离线文档
- extras额外的工具,模拟加速器,向下兼容的jar包
- platforms开发需要的平台,每个平台的android.jar在对应的文件夹 里面
- platform-tools开发调试的工具adb.exe一个重要的调试桥
- sources android.jar的源码
- system-images模拟器创建需要的镜像
- tools开发辅助需要用到的工具,模拟器.exe
ADB
- adb devices查看链接到电脑上所有的手机设备
- adb kill杀死adb的调试桥
- adb start-server重新启动adb的调试前
DDMS
android应用的目录结构
- src文件 java源代码 onCreate()界面被调用的方法
- gen目录制动生成的文件夹,里面保存的res资源文件的引用
- res目录 layout 用xml文件编写的布局
- AndroidManifest.xml
清单文件,配置应用程序的版本,图标,名称等信息
android应用考法的步骤
- res–>layout文件夹,修改xml布局文件
- src–>java文件编写代码
- 找到关心的控件findViewById(R.id.xxx)
- 设置点击事件,或者获取数据
- 记得设置权限
常见布局
- 线性布局Lineearlayout
重要参数
朝向orientation:horizontal,vertical
权重weight控制控件在父窗体里面显示的比例
- 相对布局RelateLayout
- 帧布局FrameLayout
- 表格布局TableLayout
- 绝对布局AbsoluteLayout
点击事件的集中写法
- 内部类实现onclickListener的接口
- 匿名内部类实现onclickListener
- 让当前的Activity实现onclickListener的接口
- 在布局xml文件里面申明onclick属性=”方法名”
常用的一些控件
- TextView 文本控件
- EditText输入框
- Button按钮
- ImageView图片视图
- CheckBox勾选框
- SeekBar拖动条
- RadioGroup单选按钮组
- RadioButton单选按钮
- ListView列表视图
- Toast吐司显示
android中常见的单位
- dp独立像素
- sp比例像素
QQ盗号的案例步骤
1.编写res/layout布局文件
图片imageView,输入框EditText,按钮Button
2.编写src当中的java代码
关心控件findViewById(R.id.xxx)
3.实现业务逻辑
得到输入框里面的内容 et.getText().toString().trim()
判断输入框的内容是否为空TextUtils.isEmpty()
发信息 SmsManager smsManager=SmsManager.getDefault();
4.配置清单文件权限
发送短息的权限android.permission.SEND_SMS
相关的测试
1.单元测试
写一个类继承androidTestCase
定义公有的方法,向外刨抛出异常
在清单文件配置
运行单元测试
android文件的存储
1.私有文件的存储
文件目录,缓存目录context.getFilesDir(),context.getCacheDir()
2.公有文件的存储
penFileOutPut()
3.外部文件sdcard存储
清单文件添加sdcard权限,判断sdcard是否挂载,判断可用空间的大小,读取数据到sd卡
注意:要添加操作sdcard的权限
文件访问的权限
1.自己应用app
布局文件里面的四个按钮:私有,可读可写,只读,只写
四个按钮分别实现各自的点击事件
2.其他应用app
布局文件里面两个按钮:读取,写入
两个按钮读取和写入文件数据
SharedPreference共享参数
1.sp的操作步骤
得到sp对象context.getSharedPrefences(“xxx”,0)
读取数据String data=sp.getString(key,default)
写入数据
得到编辑器的对象Editor editor=sp.edit()
编辑器添加数据editor.putString(key,value)
编辑器提交数据editor.commit()
使用sp完成qq登陆的操作“
xml序列化
- 得到xml文件的序列化器
- 制定序列化器的初始化参数
- 写xml文件
xml解析
- 获取xml的解析器
- 设置解析器的初始化参数
解析xml文件
开始节点 结束节点 取两个节点的文本 获取当前节点名称 解析下一个节点
数据库的创建
- 写一个类继承SQLiteOpenHelper
- 构造方法,形参为上下文
- onCreate()初始化表数据,只会被调用一次
- onUpgrade升级数据库,版本发生改变调用
- 读入数据getReadableDatabase()
- 写入数据getWriteableDatabase()
学生信息管理系统
独立完成管理系统
ListView的使用方式
- 在res/layout布局文件定义ListView
- 在src的java代码里面关心控件 findViewById(R.id.ListView)
创建适配器的对象,适配器继承 BaseAdapter
构造方法 getcount得到条目 getView()得到条目的视图 布局填充器
- 设置适配器setAdapter(adapter)
- 设置ListView列表项的点击事件setOnitemClickLinstener()
- 通知ListView更新数据adapter.notifyDataSetChanged()
采用ListView完成学生管理系统
- 布局文件
src/MainActivity
关心控件findViewById() 设置按钮的点击事件 得到输入框的内容 创建dao对象 调用方法操作数据
src/StudentDao
SqliteOpenHelper heper 构造方法 初始化帮助类对象 heper 增删改 db=helper.getWritableDataBase() db.execSQL() db.close() 查 db=helper.getReadableDataBase() Cursor c=db.rawQuery() db.close() c.close()
src/StudentDBOpenHelper
构造方法 context studen.db null 1 oncreate() 创建数据库的表 onupgrade() 版本变化升级
对话框
- 普通对话框
- 单选对话框
- 多选对话框
- 进度对话框
- 进度条对话框
- 自定义对话框
常见的适配器
- 数组适配器ArrayAdapter
- 简单适配器SimpleAdapter
国际化
设置当前的drawable
属性和value属性
设置为制定的国际化
没有思路
- 认真努力
- 先模仿敲一遍
- 理清自己的思路
- 根据自己的理解再去敲一遍