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

作者: b22523051261 | 来源:发表于2017-01-09 15:09 被阅读152次
    • 作者: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() );
    

    完结撒花!!!

    相关文章

      网友评论

      • 蜉杰辰蝣:楼猪,写的也太随意了😬😬
        b22523051261::joy: 我文笔不好 而且大部分凭着自己学习的感觉写的 sorry啊

      本文标题:第一行代码 阅读笔记(5-9章)

      本文链接:https://www.haomeiwen.com/subject/bcchbttx.html