Andriod 学习笔记

一.生成、保存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提交数据

三.获取数据(图片,网页,xmljson

     图片:经过链接获得的输入流,获得二进制码,转化成位图显示

      网页:根据网页编码,把二进制编码成字符串。  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

相关文章
相关标签/搜索