第一行代码 阅读笔记(5-9章)

  • 作者:Mr.Egg
  • 状态:完成
  • 转载请注明

一.第五章

(本章只理解了大概)

1.广播机制

广播分为标准广播有序广播
标准广播直接分发到所有广播接收器
有序广播依次分发到各个接收器

二.第六章

1.将数据存入/取出文件

两种模式MODE_PRIVATE(覆盖 默认用此)MODE_APPEND(追加),其余两种在4.2版被废弃不做介绍。
注意:读取权限的申请?这里没提到,不过可能需要SD卡的读取权限。

2.SharedPreferences

调用Activity中的getSharedPreferences(“name”,模式)方法获取到SharedPreferences.Editor对象

通过设置 key , value 方式存储键值对,最后调用apply方法保存。
同理于取,不做介绍。

3.SQLite

新建类继承于SQLiteOpenHelper,在onCreate方法中新建表

onUpgrade方法中更新表,每次更新都会导致数据库数据清除,通过传入比之前更大的版本号自动调用onUpgrade方法。

添加数据
调用getWritableDatabase()方法获取数据库db
实例化ContentValues插入键值对后再调用db直接插入
其他不做介绍

同样也可以直接使用sql语句操作数据库
eg.db.execSQL(“delete from xx where number > ?”,new String[]{“500”});

4.LitePal 数据库开源操作库

(重点) 同样的有GreenDao
首先导入库,‘org.litepal.android.core:1.3.2’
接着在main目录下新建assets目录下新建litepal.xml

<litepal>
        <dbname value = "name"></dbname>
        <version value = "1"></version>

        <list>
        </list>
<litepal>

接下来配置** AndroidManifest.xml** ,在application标签下面的 android:name=”org.litepal.LitePalApplication”

使用

首先,新建对应表的实体类(类—>表 一个类对应一张表)。
接着在litepal.xml中配置

<litepal>
        <dbname value = "name"></dbname>
        <version value = "1"></version>

        <list>
                <mapping class = "com.example.xxx.class"></mapping>
        </list>
<litepal>

eg.
创建数据库 Connector.getDatabase()
插入数据

  Class xx = new Class();
  ....(设置数据)
  xx.save();

同理于其他 不予列举

三.第七章

1.内容提供器

内容提供器是不同应用之间共享数据的渠道

2.Android权限机制

Android权限分为普通权限和危险权限,普通权限由系统之间授权,危险权限需要示意用户是否给予权限。

四.第八章

本章讲调用系统组件(相机,相册等),未仔细阅读。

五.第九章

注意本章要申请网络权限

1.WebView使用方法

2.HTTP协议访问

HTTP协议访问网络属于底层实现,现在常用封装好的库来代替 ,但也必须了解。
首先,网络属于耗时操作,只能在子线程中运行
几个主要的点

Url url = new Url("");
HttpConnection connection = new HttpConnection ();
connection .setRequestMethod("GET/POST");
connection .setConnectionTimeout(8000(ms));
connection .setReadTimeout(8000(ms));
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader( new InputStreamReader(in) );
//处理reader就可以了

3.使用OkHttp

okhttp是Square公司的开源网络库,类似的有Retrofit。
主要操作

OkHttpClient client = new OkHttpClient();//请求主体
Request request = new Request.Builder()  //request对象
              .url("url")
              .builder();
Response response = client.newCall(request).execute();    //发送请求

//-------------------------Post提交------------------------------------//
RequestBody requestBody = new FormBody.Builder()
                        .add("key","value")
                        .builder();
Request request = new Request.Builder()  
              .url("url")
              .post(requestBody )
              .builder();

4.解析XML

三种方式:Pull,SAX,DOM(此书未提及)

5.解析Json

多种方式,书上主要写JSONObjectGSON还有一种常用的为FastJson
由于我习惯用Gson所以这里我稍微介绍下Gson。

用Gson解析Json首先要先根据Json构造对应的实体类,如果用Android Studio的话可以添加插件GsonFormat根据Json自动生成对应的实体类。

其次是用法

Class JsonClass = new Gson().fromJson(String,Class.class);

如果的List的话较为麻烦 (此处凭记忆打的可能有错,具体请百度)

List<T> list = new Gson().fromJson(json,new TypeToken< List<T> >() {}.getType() );

完结撒花!!!

    原文作者:m丶小蛋蛋
    原文地址: https://www.jianshu.com/p/634fe6aa718c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞