一.生成、保存xml文件 android
1.生成:Xml.newSerializer() 数据库
设置Output参数: json
1.能够是 缓存
File file=new File(this.getContext().getFileDir(),"person.xml"); 网络
FileOutputStream outStream=new FileOutputStream(file); ide
2.能够是写入器: 函数
FileOutputStream outStream=this.getContext().openFileOutputStream("",context.MADE_PRIVATE); 动画
OutputStreamwriter writer=new OutputStreamWriter(outStream,"UTF-8"); this
3.能够给写入器加缓存: 编码
BufferedWriter Bwriter=new BufferidWriter(writer);
4.还能够写入内存:
StringWriter writer=new StringWriter();
FileOutputStreamWrite/Buffer
2生成文件:serializer.startTag(null,"");
For(){
serializer.startTag(null."")
Serializer.text();
serializer.endTag(null."");
}
serializer.endTag(null."");
生成后会根据Output的设置保存文件
二.SQLite数据管理(存放在应用下的database下)
1.建立数据库帮助类,继承SQLiteOpenHelper,添加构造函数,添加数据库名,在OnCreate里添加建表语句
2.dbOpenHelper实例化时自动建立数据库
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();第一次调用时、自动建立表。
3.若是要对数据进行更改,就调用此方法获得用于操做数据库的实例,该方法以读和写方式打开数据库SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
若是只对数据进行读取,建议使用此方法(先以读写的方式打开,失败后以只读的方式打开) SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
先用读写方式打开链接,若失败用只读方式打开
屡次调用时同一个实例
4.经过游标:Cursor cursor = db.rawQuery("select * from person limit ?,?",
new String[]{offset.toString(), maxResult.toString()});对结果进行处理
网络部分:获取数据、http提交数据
三.获取数据(图片,网页,xml,json)
图片:经过链接获得的输入流,获得二进制码,转化成位图显示
网页:根据网页编码,把二进制编码成字符串。 ScrollView滚动条视图
四.添加activity
1.添加类,
2.添加配置,不能屡次加意图过滤器(一个应用只能有一个意图过滤器)。
3.添加视图。
激活activity
1.利用意图激活activity,把组件设置给意图,
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
写法一 intent.setClass(MainActivity.this, OtherActivity.class);//设置要激活的组
写法二 intent.setComponent(new ComponentName(MainActivity.this, OtherActivity.class));//设置要激活的组件
2.把意图传给android系统,startActivity(intent);
3.android系统经过activity管理器管理activity
Activity传递数据
1.利用意图激活activity,把组件设置给意图,
2.设置参数intent.putExtra("",obj);
3.得到意图 Intent intent=this.getIntent();
4.获得数据 intent.getSringExtra("name");
5.能够用Bundle批量传输数据:
Bundle bundle = new Bundle();
bundle.putString("name", "传智播客");
bundle.putInt("age", 4);
intent.putExtras(bundle);
Activity传回数据
1.主activity设置意图:
2.startActivityForResult(intent, 100);
3.Intent intent = new Intent();
intent.putExtra("result", "这是处理结果");
setResult(20, intent);//设置返回数据,返回码
finish();//关闭activity
3.要获得返回结果要重写onActivityResult方法(返回Activity时候由系统调用)
请求码返回码
1.请求码区分那个请求,所获得的结果
2.返回码用来区分结果来自于哪一个activity
意图
实现组件间的解耦
1.显式意图:显式的设置了组件
2.隐式意图:经过与意图过滤器匹配(动做action ,类别category,数据URI),并根据过滤器所在的activity执行意图,
3隐式意图能够用于不一样应用之间的访问
4.过滤器可有多个动做和类别;intent只要匹配其中一个就能够执行Activity;
5.数据匹配,Uri数据匹配+Uri类别匹配
Activity生命周期
1.Activity状态:激活、暂停(被半覆盖)、中止(内存不足时优先被杀死)
广播接收器
1.建立广播接受者类,继承BroadcastReceiver 并重写onReceiver。(广播接受者的工做时长不能超过10秒,耗时工做要经过意图传递给service处理)
2.配置receiver,并配置要监听的广播意图(根据广播意图实例化接受者)
3.接受者从意图中获得数据Object[] pduses=intent.getExtras().get("pdus");(多条短信内容)
4.广播是能够被多个接受者接受的。
发送广播:当有操做系统发送广播(接受短信。。。。。。。。)
Context.sendBroadcast(intent)
Context.sendOrderBroadcast(intent);是指发送意图,实现广播
用 服务 实现电话窃听
使用服务
一、建立服务类,继承service;配置服务
2.具体实现:1得到系统服务
2.设置服务监听,服务监听状态(监听器根据监听状态来执行监听)
3.服务退出时候要清理缓存 (存放于应用下的文件)
3.服务中也不要作耗时操做,放到 线程 中操做
4.服务不会自动启动,能够用意图激活服务(eg:开机广播:)
服务与Activity进行绑定
1.在Activity中启动服务(利用intent);
Conn=new MyseviceConnection();
Intent intent=new Intent(this ,MyService.this);
//打开服务,会让服务的onbind()执行
bindService(intent,conn,BIND_AUTO_CREATE);意图、链接、打开方式
2.在service中建立一个MyBiner类,为了建立反对的Mybinder实例
3.经过MyserviceConnection的到返回的服务(通常获得接口,来调用接口的方法):
Myserviceconnection要继承serviceconnection。重写链接、失败、断开方法。链接 和断开时执行
4.断开服务: bindService(conn);
5.若先启动服务,再绑定actvity。若Activity关闭服务不会销毁
6.经常使用系统服务:TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
窗口服务 音频服务 全局时间服务 AlarmManager.setRepeating()设置定时,定间隔执行PandingIntent,PandingIntent能够绑定服务,每次执行服务的onstart();
音乐播放器 MediaPlayer
一、MediaPlayer:设置播放器播放
FileaudioFile=newFile(Environment.getExternalStorageDirectory(),filename);
mediaPlayer.reset()//多媒体接口要reset prepare
mediaPlayer.setDataSource(audioFile.getAbsolutePath());
mediaPlayer.prepare();
mediaPlayer.start();
2.能够利用Activity的生命周期开控制播放器的播放
视频播放器 (MediaPlayer)
1.SerfaceView来显示视频(能够直接从内存或者DMA等硬件接口取得图像数据,是个很是重要的绘图容器。
)
2.这里用到了一个类SurfaceHolder,能够把它当成surface的控制器,用来操纵surface。处理它的Canvas上画的效果和动画,控制表面,大小,像素等。
照相机 camera(摄像头)
1.利用视图显示照片预览
/*下面设置Surface不维护本身的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前*/ surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceView.getHolder().addCallback(new SurfaceCallback());实现Callback接口。。。启动硬件
2.camera = Camera.open();对Camera.Parameters进行设置
3.camera.setPreviewDisplay(surfaceView.getHolder());//经过SurfaceView显示取景画面。开启浏览camera.startPreview();
4.经过点击事件出发拍照
case KeyEvent.KEYCODE_DPAD_CENTER:
camera.takePicture(null, null, new TakePictureCallback());实现picturesCallBack接口
5.保存位图,保存结束要继续浏览要,先关掉浏览在开启浏览
camera.stopPreview();
camera.startPreview();//开始预览
刻录视频(MediaRecord)
视频刻录设置好参数,摄像头自动打开
跨进程访问
1.broadcast Activity AIDL服务(android interface definition language) content provider