Android基础知识点总结

Android基础知识点总结

在学习了很长一段时间的Android基础内容,如果不做及时的复习,那么后面的项目学习起来可能就没那么顺利了,并且复习也是一件很愉快的事。古人有云:“学而时习之不亦说乎”,应该就是这个道理。

~本文大纲~

  • Android基础知识点总结
    • Day01
      • 01Android系统中我们常用的4种数据存储方式
      • 02获取手机内存空间大小
      • 03XML文件的生成和解析
      • GET新技能
    • Day02
      • 第一个
    • day03
      • 第一个
    • day04
      • 第一个

Day01

第一天主要学习的内容相对零散一点,但还是很重要的。

01、Android系统中我们常用的4种数据存储方式★★★★★

 1. SharedPreferences存储数据
 2. getFilesDir数据存储在手机上
 3. Environment数据存储在SD卡上
 4. SQLite数据库存储

1、SharedPreferences存储数据
保存数据

SharedPreferences config = getSharedPreferences("config", MODE_PRIVATE);
                    boolean commit = config.edit().putString("Hsia", mContent).commit();
                    if (commit) {
                        Toast.makeText(getApplicationContext(), "数据保存成功!", Toast.LENGTH_SHORT).show();
                        mEtContent.setText("");
                    }

取回数据

String getConfig = getSharedPreferences("config", MODE_PRIVATE).getString("Hsia", "");
                if (!("".equals(getConfig))) {
                    Toast.makeText(getApplicationContext(), "数据取回成功!", Toast.LENGTH_SHORT).show();
                    mEtContent.setText(getConfig);
                }

2、getFilesDir数据存储在手机上

 /** * 获取已保存的用户信息 * @param context * @return */
    private String getConfigFile(Context context) {
        try {
            BufferedReader br = new BufferedReader(new FileReader(new File(context.getFilesDir(), FILENAME)));
            String data = br.readLine();
            br.close();
            return data;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /** * 保存用户信息到手机上 * @param context * @param mContent * @return */
    private boolean SaveConfig(Context context, String mContent) {
        if (mContent != null) {
            File file = new File(context.getFilesDir(),FILENAME);
            try {
                BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                bw.write(mContent);
                bw.newLine();
                bw.close();
                return true;
            } catch (IOException e) {
                e.printStackTrace();
                return false;
            }
        }else{
            return false;
        }
    }

3、Environment数据存储在SD卡上

/** * 从sd卡中取出数据 * @return */
    private String SDGetConfig() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            try {
                FileReader fr = new FileReader(new File(Environment.getExternalStorageDirectory() + SDDownload, FILENAME));
                int len = 0;
                char[] chs = new char[1024];
                String data = "";
                while((len = fr.read(chs))!=-1){
                    data = new String(chs,0,len);
                }
                fr.close();
                return data;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    /** * 保存数据到sd卡中 * @param mContent * @return */
    private boolean SDSaveConfig(String mContent) {
        //判断sd卡是否存在
        String state = Environment.getExternalStorageState();
        //如果sd卡不存在直接返回false
        if (!(Environment.MEDIA_MOUNTED.equals(state))) {
            return false;
        }else{
            try {
            FileWriter fw = new FileWriter(new File(Environment.getExternalStorageDirectory() + SDDownload, FILENAME));
                fw.write(mContent);
                fw.close();
                return true;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return false;
    }

Android基础知识点总结_第1张图片
Android基础知识点总结_第2张图片

  • SharedPreferences存储数据,会在当前包名下,生成一个“shared_prefs”文件夹,配置文件放在该目录下。
  • getFilesDir存储数据,会在当前包名下,生成一个“files”文件夹,配置文件放在该目录下。
  • Environment存储数据,获取到SD卡根目录,文件默认会存放在SD卡根目录中。

4、SQLite数据库存储(相对知识点较多暂时不做演示)

02、获取手机内存空间大小★★★

由于获取手机空间大小实际开发中使用较少,并且相对简单,就不做代码测试了,主要就用到Environment(获取SD卡空间)和getFilesDir(获取手机空间)。

关键代码

  • 获取SD卡空间大小
File storageDirectory = Environment.getExternalStorageDirectory();
long totalSpace = storageDirectory.getTotalSpace();
long usableSpace = storageDirectory.getUsableSpace();
  • 获取手机空间大小
File filesDir = getFilesDir();
long totalSpace = filesDir.getTotalSpace();
long usableSpace = filesDir.getUsableSpace();
String totalSpaceStr = Formatter.formatFileSize(this, totalSpace);
String usableSpaceStr = Formatter.formatFileSize(this, usableSpace);

03、XML文件的生成和解析★★★

  • 生成XML文件

Android基础知识点总结_第3张图片

/** * 生成XML文件的方法 * @return */
    private boolean MakeXML() {
        //Xml.newSerializer开始拼接数据生成xml
        XmlSerializer xmlSerializer = Xml.newSerializer();
        //设置xml文件的存放路径
        File file = new File(getFilesDir(), "makeXML.xml");
        try {
            FileOutputStream fos = new FileOutputStream(file);
            xmlSerializer.setOutput(fos,"utf-8");
            //开始写xml
            xmlSerializer.startDocument("utf-8",true);
            //开始写xml的根节点
            xmlSerializer.startTag(null,"Message");
            for (int i = 0; i < 5; i++) {
                xmlSerializer.startTag(null,"sms");
                xmlSerializer.startTag(null,"address");
                xmlSerializer.text("15855225588");
                xmlSerializer.endTag(null,"address");
                xmlSerializer.startTag(null,"name");
                xmlSerializer.text("Hsia");
                xmlSerializer.endTag(null,"name");
                xmlSerializer.startTag(null,"body");
                xmlSerializer.text("Hello!!!!");
                xmlSerializer.endTag(null,"body");
                xmlSerializer.endTag(null,"sms");
            }
            xmlSerializer.endTag(null,"Message");
            xmlSerializer.endDocument();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
  • 解析XML文件
/** * 解析XML的方法 * @param file * @return */
    private List<Weather> GetResolveXML(File file) {
        XmlPullParser parser = Xml.newPullParser();
        FileInputStream fis = null;
        List<Weather> list = null;
        Weather weather = null;
        try {
            fis = new FileInputStream(file);
            parser.setInput(fis,"utf-8");
            int type = parser.next();
            while(type!=XmlPullParser.END_DOCUMENT){
                if (type==XmlPullParser.START_TAG) {
                    list = new ArrayList<>();
                    //如果开始标签是weather标签则实例化weather
                    if ("weather".equals(parser.getName())) {
                        weather = new Weather();
                    }else if ("city".equals(parser.getName())) {
                        //获取节点下的属性值
                        String id = parser.nextText();
                        weather.setId(id);
                    }else if ("name".equals(parser.getName())) {
                        String name = parser.nextText();
                        weather.setName(name);
                    }else if ("pm".equals(parser.getName())) {
                        String pm = parser.nextText();
                        weather.setPm(pm);
                    }else if ("wind".equals(parser.getName())) {
                        String wind = parser.nextText();
                        weather.setWind(wind);
                    }else if ("temp".equals(parser.getName())) {
                        String temp = parser.nextText();
                        weather.setTemp(temp);
                    }
                }
                type = parser.next();
                list.add(weather);
            }
            fis.close();
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

GET新技能

  • 1、将LogCat信息显示在控制台中

    在控制台中输入adb logcat 然后按回车键即可看到LogCat信息,如果需要终止按Ctrl+C键即可。

  • 2、将LogCat信息保存在文件中

    执行adb logcat >D:/a.txt 则将日志输出到D:/a.txt文件中。按Ctrl+C键终止日志的输出。

Day02

主要学习Android-SQLite和ListView控件的使用

第一个

day03~~@

第一个

day04

第一个

你可能感兴趣的:(android)