zoukankan      html  css  js  c++  java
  • 20189217 2018-2019-2 《移动平台开发实践》第10周学习总结

    教材学习内容总结

    第39章要点

    要点1:SharedPreference

    • 在Android中我们通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数。

    • android.content.SharedPreferences接口提供了用于排序读取应用程序设置的方法。

    • 通过调用PreferenceManager的getDefaultSharedPreferences静态方法,传入一个Content,以获取SharedPreferences的默认实例。

    • SharedPreferences使用xml文件, 类似于Map集合,使用键-值的形式来存储数据,调用SharedPreferences的getXxx(name)即可根据键获得对应的值。

    • 在Device File Expoler打开data/data/<包名>可以看到在shared_prefs目录下生成了一个xml文件:

    • SharedPreferences使用流程图:参考

    第40章要点

    要点1:存储区域

    • 内部存储:对于应用程序来说是私有的,用户和其他应用程序都不能访问它。
    • 外部存储:存储的文件将会和其他的应用程序分享,其他用户也能够访问外部存储。例如,内建的Camera应用程序将数字图像文件存储在外部存储中,以便用户能够很容易地将其复制到计算机中。

    要点2:内部存储

    • 内部存储的位置是<code_s>/data/data/<包名></code_s>。

    • Context类提供了各种方法,可用来从应用程序访问内部存储。应该使用这些方法来访问在内部存储中存储的文件,而且不应该将内部存储的位置直接编写到代码中。

    • Android文件操作模式:参考

    • Android文件操作方法:参考

    • 读取SD卡上的文件:参考

    要点3:外部存储

    • 读/写外部存储需要在AndroidManifest.xml中添加如下内容:

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      

    第41章要点

    要点1:SQLite

    • Android系统已经集成了SQLite数据库,所以无需安装数据库软件。
    • SQlite通过文件来保存数据库,一个文件就是一个数据库,数据库中又包含多个表格,表格里又有多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们可以指定类型,也可以不指定类型(主键除外)。
    • Android内置的SQLite是SQLite 3版本的。
    • 使用数据库时会用到的三个类:
      • SQLiteOpenHelper:抽象类,通过继承该类,重写数据库创建以及更新的方法,还可以通过该类的对象获得数据库实例,或者关闭数据库。
      • SQLiteDatabase:数据库访问类,可以通过该类的对象来对数据库做一些增删改查的操作。
      • Cursor:游标,有点类似于JDBC里的resultset结果集,可以简单理解为指向数据库中某一个记录的指针。

    要点2:查看db文件

    • 生成的数据库db文件在<code_s>/data/data/<包名>/databases/</code_s>下:

    • 在Device File Explorer里是打不开db文件的,可以用SQLite图形化工具(如SQLite Expert Professional)来查看,或者配置adb环境变量后,通过adb shell来查看。

    第42章要点

    要点1:相机

    • 要使用相机,需要在AndroidManifest.xml中添加如下内容:

        <uses-feature android:name="android.hardware.camera"/>  
        <uses-permission android:name="androud.permission.CAMERA"/>
      
    • 如果Camera不符合需要,也可以直接使用Camera API,它允许配置相机的很多参数。

    • Camera API以android.hardware.Camera类为中心。

    代码调试中的问题和解决过程

    • 问题1:
      Android Studio:xxx is not an enclosing class

    • 问题1解决方案:
      若要创建内部类的实例,需要有外部类的实例才行,或者是将内部类设置为静态的,添加 static 关键字

        	public class A{
        		public class B{
      
        		}
        	}
      

      如果写成 A.B ab = new A.B()就会出现xxx is not an enclosing class,应该改为

        	A a = new A();  
        	A.B ab = a.new B(); 
      

      或将class B 改成static class B 这样就可以直接用A.B ab = new A.B();了。

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 1/3 17/37
    第三周 787/1287 1/4 15/52
    第四周 350/1637 1/5 16/68
    第五周 1049/2686 1/6 20/88
    第六周 1500/4186 1/7 18/106
    第七周 1718/5904 1/8 14/120
    第八周 200/6104 1/9 12/132
    第九周 800/6904 2/11 12/144
    第十周 800/7704 1/12 15/144
    • 计划学习时间:18小时

    • 实际学习时间:15小时

    参考资料

  • 相关阅读:
    C结构体
    读书笔记之:C语言深度剖析
    stdin、stdout、stderr
    There is an error while getting planid. No Free partitions available
    LeetCode刷题笔录Add Binary
    UVA
    谷歌google搜索打不开、谷歌gmail邮箱及相关服务无法登录的解决的方法
    C/C++中各种类型int、long、double、char表示范围(最大最小值)
    使用java进行文件编码转换
    懂,你的App生,不懂,死!
  • 原文地址:https://www.cnblogs.com/PNIDEMOOO/p/10802799.html
Copyright © 2011-2022 走看看