• 测试的相关内容
  • logcat日志猫工具的使用
  • 把数据存储到文件login案例 android 下的数据存储
  • 存储到SD卡获取SD的大小及可用空间 重点
  • 文件的权限概念 了解
  • SharedPreferences介绍 重点 用来做数据存储
  • 经验之谈
  • 生成xml的2种方式

1.测试的相关内容

1.adb shell 下面的 monkey -p pagename  1000,在手机上的某个应用狂点1000下.2.百度云测  在云端测试该应用

2.logcat日志猫工具的使用

需要logcat的时候,需要创建一个包com.xx.logcat.utils,里面需要创建一个类LogUtils,在这里面控制打印的信息.(必须这样,否则就是不合格的程序员).
在公司开发中一般打印日志用Log类,通常会封装一个LogUtils,通过开关来控制日志信息的打印.

3.把数据存储到文件(login案例) android 下的数据存储

1.写布局LinearLayout + RelativeLayout
2.写业务逻辑a.找到相应控件b.设置按钮的点击事件c.在onclick方法中,获取用户输入的用户名密码和是否记住密码d.判断用户名密码是否为空,不为空请求服务器(省略,默认请求成功)e.判断是否记住密码,如果记住,将用户名密码保存本地。???? f.回显用户名密码 ??//通过context对象获取私有目录,/data/data/packagename/filsecontext.getFileDir().getPath()
3.必须清楚业务逻辑才能写代码
4.在xml文件中需要使用string资源来显示文字
5.在Activity中定义一个属性private Context mContext;然后在
setContentView之后将这个属性初始化(设置为当前的Activity.this),很多地
方需要用到Context对象(比如Toast等),这样很方便.在公司,有经验的人都这样
写,so...
6.ctrl+1 可将临时变量快速转变为类的属性
7.通过context对象获取私有目录,/data/data/packagename/filescontext.getFileDir().getPath()

4.存储到SD卡,获取SD的大小及可用空间 (重点)

使用sdcard注意事项1.权限问题<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.硬性编码问题:通过Environment.getExternalStorageDirectory().getPath()
获取sd卡路径3.使用前,需要判断SD卡状态 getExternalStorageState()  MEDIA_MOUNTED->可读写4.需要判断SD卡的剩余空间//判断sdcard存储空间是否满足文件的存储File sdcard_filedir = Environment.getExternalStorageDirectory();//得到sdcard的目录作为一个文件对象long usableSpace = sdcard_filedir.getUsableSpace();//获取文件目录对象剩余空间long totalSpace = sdcard_filedir.getTotalSpace();//将一个long类型的文件大小格式化成用户可以看懂的M,G字符串String usableSpace_str = Formatter.formatFileSize(mContext, usableSpace);String totalSpace_str = Formatter.formatFileSize(mContext, totalSpace);if(usableSpace < 1024 * 1024 * 200){//判断剩余空间是否小于200MToast.makeText(mContext, "sdcard剩余空间不足,无法满足下载;剩余空间为:"+usableSpace_str, Toast.LENGTH_SHORT).show();return ;    }/data/data: context.getFileDir().getPath();是一个应用程序的私有目录,只有当前应用程序有权限访问读写,其他应用无权限访问。一些安全性要求比较高的数据存放在该目录,一般用来存放size比较小的数据。/sdcard:  Enviroment.getExternalStorageDirectory().getPath();是一个外部存储目录,只用应用声明了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>的一个权限,就可以访问读写sdcard目录;所以一般用来存放一些安全性不高的数据,文件size比较大的数据。

5.文件的权限概念 (了解)

//通过context对象获取一个私有目录的文件读取流  /data/data/packagename/files/userinfoi.txt
FileInputStream fileInputStream = context.openFileInput("userinfo.txt");//通过context对象得到私有目录下一个文件写入流; name : 私有目录文件的名称    mode: 文件的操作模式, 私有,追加,全局读,全局写FileOutputStream fileOutputStream = context.openFileOutput("userinfo.txt", Context.MODE_PRIVATE);   linux下一个文件的权限由10位标示:
1位:文件的类型,d:文件夹 l:快捷方式  -:文件
2-4: 该文件所属用户对本文件的权限 , rwx :用二进制标示,如果不是-就用1标示,是-用0标示;chmod指令赋权限。
5-7:该文件所属用户组对本文件的权限
8-10:其他用户对该文件的权限。

6.SharedPreferences介绍 (重点) 用来做数据存储

    sharedPreferences是通过xml文件来做数据存储的。一般用来存放一些标记性的数据,一些设置信息。*********使用sharedPreferences存储数据1.通过Context对象创建一个SharedPreference对象//name:sharedpreference文件的名称    mode:文件的操作模式SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);2.通过sharedPreferences对象获取一个Editor对象Editor editor = sharedPreferences.edit();3.往Editor中添加数据editor.putString("username", username);editor.putString("password", password);4.提交Editor对象editor.commit();*********使用sharedPreferences读取数据1.通过Context对象创建一个SharedPreference对象SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);2.通过sharedPreference获取存放的数据//key:存放数据时的key   defValue: 默认值,根据业务需求来写String username = sharedPreferences.getString("username", "");String password = sharedPreferences.getString("password", "");通过PreferenceManager可以获取一个默认的sharepreferences对象      SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

7.经验之谈

    1.谷歌官方推荐一个Android下的一个Bean类(Model),比如Student,SmsBean等.里面的属性不要用设置为private,然后get,set,尽量用public,因为get,set需要反射,反射需要占内存,android内存有限,所以用public.2.工具类需要封装到util包下面.3.数据库的增删改查放到dao包下面.

8.生成xml的2种方式

    1.写布局2.业务逻辑a.备份1.封装短信数据到list中2.将list中的数据写到xml文件中。b.恢复1.解析xml文件中短信数据,封装到list集合中2.将解析数据打印。XmlSerializer//使用XmlSerializer来序列化xml文件
public static boolean backupSms_android(Context context){try{//0.获取短信数据ArrayList<SmsBean> allSms = SmsDao.getAllSms();//1.通过Xml获取一个XmlSerializer对象XmlSerializer xs = Xml.newSerializer();//2.设置XmlSerializer的一些参数,比如:设置xml写入到哪个文件中//os:xml文件写入流   encoding:流的编码xs.setOutput(context.openFileOutput("backupsms2.xml", Context.MODE_PRIVATE), "utf-8");//3.序列化一个xml的声明头//encoding:xml文件的编码  standalone:是否独立xs.startDocument("utf-8", true);//4.序列化一个根节点的开始节点//namespace:命名空间  name: 标签的名称xs.startTag(null, "Smss");//5.循环遍历list集合序列化一条条短信for (SmsBean smsBean : allSms) {xs.startTag(null, "Sms");//name:属性的名称  value:属性值xs.attribute(null, "id", smsBean.id+"");xs.startTag(null, "num");//写一个标签的内容xs.text(smsBean.num);xs.endTag(null, "num");xs.startTag(null, "msg");xs.text(smsBean.msg);xs.endTag(null, "msg");xs.startTag(null, "date");xs.text(smsBean.date);xs.endTag(null, "date");xs.endTag(null, "Sms");}//6.序列化一个根节点的结束节点xs.endTag(null, "Smss");//7.将xml写入到文件中,完成xml的序列化xs.endDocument();return true;}catch (Exception e) {e.printStackTrace();}return false;
}

Android之sd卡,SharedPreferences,xml相关推荐

  1. Android 判断SD卡是否存在及容量查询

    转载:http://blog.csdn.net/xinzheng_wang/article/details/7827775 Android 判断SD卡是否存在及容量查询的简单方法如下: 首先要在And ...

  2. android读写sd卡代码,android读写SD卡中的文件 demo

    有时,我们需要将更大的文件保存下来,就不能用手机内置的存储空间,毕竟是有限的,所以将文件保存在SD卡中. 要读写SD卡,首先要知道手机上是否有SD卡,且是否可读写 String str = " ...

  3. Android读写SD卡

    Android读写SD卡 0. 参考 解决各版本安卓读写SD卡的问题-java.io.IOException: Operation not permitted问题(兼容到android13) 1. 安 ...

  4. Android添加sd卡权限

    Android添加sd卡权限 1.在AndroidManifest.xml中添加 <uses-permission android:name="android.permission.R ...

  5. Android Studio SD卡访问权限及asserts文件夹下的文件操作

    Android Studio SD卡访问权限 1.在 AndroidManifext.xml 中添加如下代码 <uses-permission android:name="androi ...

  6. 关于Android读取SD卡存储的动态申请

    关于Android读取SD卡存储的动态申请 介绍 Android的目录结构 数据的主要存储方式 疑惑 原来的代码:MainActivity.java 修改后代码: 介绍 这篇文章主要关于我学习SD卡的 ...

  7. Android 获取SD卡路径和判断SD卡是否存在.

    android获取sd卡路径方法: public String getSDPath(){ File sdDir = null; boolean sdCardExist =Environment.get ...

  8. Android 外置 SD 卡写入权限问题

    https://busy.im/post/android-sdcard-write/ 最近升级到 Android 9.0 后,发现文件管理器在写入外置 SD 卡时出现了写入失败的问题,定位到 File ...

  9. android浏览SD卡的文件,简单实现浏览Android SD卡中的文件

    ----Main.java public class Main extends Activity { private TextView textView; private Button button; ...

最新文章

  1. Go 学习笔记(84)— Go 项目目录结构
  2. MYsql优化where子句
  3. linux 自学系列:chown 目录权限设置
  4. 优秀项目解析:区块链上的房地产交易
  5. Java代理初学者指南
  6. dwz怎么使用数据加载中提示_百度地图数据采集手把手教,从此POI数据不再是愁...
  7. POJ 2236 Wireless Network
  8. C语言如何调用REFPROP软件,如何用C++6.0调用refprop物性查询软件
  9. 2021年北京市促进服务外包发展专项资金申报时间及材料,补贴500万
  10. ajax返回map的值,同时在sucess返回时的显示
  11. Contents mismatch at: 08000000H (Flash=FFH Required=00H) ! Too many errors to display !
  12. 七夕表白之Python画玫瑰花
  13. 我的阅读习惯 俞敏洪
  14. 百度智能云“护航”度小满金融 实现“两地三中心项目”落成
  15. 多人协作共享画板——多人画板的bug及分析
  16. OpenCV-透视变换及对二维点求透视变换之后的坐标
  17. 7代cpu能装虚拟xp系统吗_Intel 10代PC/笔记本安装Win7踩坑记 amp; 驱动分享
  18. mysql数据库修复_MySQL数据库修复方法(MyISAM/InnoDB)
  19. 关键点检测项目代码开源了!
  20. 可选参数和非可选参数python_python – Argparse:必需的参数列在“可选参数”下?...

热门文章

  1. 【Week9作业 B】东东学打牌【模拟】
  2. 程序员的春天来了,最美赏花旅游地十大攻略
  3. 草图大师SketchUp 2021 mac版 兼容macos11系统正式上线!
  4. cocos creator入门教程(六)—— cc.Action使用
  5. 手写字体识别 --MNIST数据集
  6. 无胁科技-TVD每日漏洞情报-2022-10-26
  7. [福建]福建企业的现实与渴望
  8. 如何恢复未保存的Excel文件
  9. 基金基本信息列表 API 数据接口
  10. 电脑连接不上WiFi无线网,网络显示出现黄星号,或者感叹号最有效的解决方法: