20189217 2018-2019-2 《移动平台开发实践》第10周学习总结

该博客围绕Android开发展开,总结了教材中数据存储与相机使用的要点。包括使用SharedPreference保存用户偏好参数,介绍内部、外部存储及SQLite数据库的使用,还提及相机的配置与API使用。此外,记录了代码调试问题及解决办法,分享了学习进度。

教材学习内容总结

第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文件:
    1511102-20190503132253860-1533489662.png

  • SharedPreferences使用流程图:参考
    1511102-20190503132249383-65248097.jpg

第40章要点

要点1:存储区域

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

要点2:内部存储

  • 内部存储的位置是/data/data/<包名>。
  • Context类提供了各种方法,可用来从应用程序访问内部存储。应该使用这些方法来访问在内部存储中存储的文件,而且不应该将内部存储的位置直接编写到代码中。
  • Android文件操作模式:参考
    1511102-20190503133928355-2071750380.jpg

  • Android文件操作方法:参考
    1511102-20190503133934911-2048022606.jpg

  • 读取SD卡上的文件:参考
    1511102-20190503133942280-1190224850.jpg

要点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文件在/data/data//databases/下:
    1511102-20190503141107058-407244221.png

  • 在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();了。

代码托管

1511102-20190503143356978-2103382503.png

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周200/2002/220/20
第二周300/5001/317/37
第三周787/12871/415/52
第四周350/16371/516/68
第五周1049/26861/620/88
第六周1500/41861/718/106
第七周1718/59041/814/120
第八周200/61041/912/132
第九周800/69042/1112/144
第十周800/77041/1215/144
  • 计划学习时间:18小时

  • 实际学习时间:15小时

参考资料

转载于:https://www.cnblogs.com/PNIDEMOOO/p/10802799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值