每段时间Android开发10个知道(基础系列)-170526

来源:互联网 发布:mac怎么更改u盘格式 编辑:程序博客网 时间:2024/05/16 09:21

每段时间Android开发10个知道(基础系列)-170526

1.Android的文件系统是怎样的?项目res目录文件路径?SD卡文件路径?应用数据区文件路径?

Android文件的操作就是Java IO流操作,这些文件从何而来呢?项目中,SD卡中,应用数据区,手机自身内存。

如今的Android各式各样,SD卡有些手机只能使用内置SD卡,而有些是可以使用外置SD卡的,那么内置SD卡文件路径和外置SD卡文件路径是怎样的呢?
http://www.open-open.com/lib/view/open1330957864280.html

2.SharedPreferences是什么?如何使用?

http://blog.csdn.net/zhang31jian/article/details/23258065

要想使用SharedPreferences来存储数据, 首先需要获取到SharedPreferences对象。 Android中主要提供了三种方法用于得到 SharedPreferences 对象。

  1. Context 类中的 getSharedPreferences()方法
    此方法接收两个参数,第一个参数用于指定 SharedPreferences 文件的名称,如果指
    定的文件不存在则会创建一个,SharedPreferences 文件都是存放在/data/data//shared_prefs/目录下的。第二个参数用于指定操作模式,主要有两种模式可以选择,MODE_PRIVATE 和 MODE_MULTI_PROCESS。MODE_PRIVATE 仍然是默认的操
    作模式,和直接传入 0 效果是相同的,表示只有当前的应用程序才可以对这个
    SharedPreferences文件进行读写。 MODE_MULTI_PROCESS 则一般是用于会有多个进程中对同一个 SharedPreferences 文件进行读写的情况。类似地,MODE_WORLD_READABLE
    和 MODE_WORLD_WRITEABLE 这两种模式已在 Android 4.2 版本中被废弃。

  2. Activity 类中的 getPreferences()方法
    这个方法和Context 中的 getSharedPreferences()方法很相似,不过它只接收一个操
    作模式参数,因为使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文
    件名。

  3. PreferenceManager 类中的 getDefaultSharedPreferences()方法
    这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作
    为前缀来命名 SharedPreferences 文件。

得到了 SharedPreferences 对象之后, 就可以开始向 SharedPreferences 文件中存储数据了,主要可以分为三步实现。
1. 调用 SharedPreferences 对象的 edit()方法来获取一个SharedPreferences.Editor 对象。
2. 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
3. 调用 commit()方法将添加的数据提交,从而完成数据存储操作。

SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();editor.putString("name", "Tom");editor.putInt("age", 28);editor.putBoolean("married", false);editor.commit();

那么如何通过SharedPreferences读取数据呢?
SharedPreferences 对象中提供了一系列的get方法用于对存储的数据进行读取, 每种get方法都对应了SharedPreferences.Editor 中的一种 put 方法,比如读取一个布尔型数据就使用 getBoolean()方法,读取一个字符串就使用 getString()方法。这些 get 方法都接收两个参数,第一个参数是键,传入存储数据时使用的键就可以得到相应的值了,第二个参数是默认值,即表示当传入的键找不到对应的值时,会以什么样的默认值进行返回。

SharedPreferences pref = getSharedPreferences("data",MODE_PRIVATE);String name = pref.getString("name", "");int age = pref.getInt("age", 0);boolean married = pref.getBoolean("married", false);

3.Android中使用的数据库叫什么?你是否会使用?第三方?

Android中使用的数据库叫SQLite。
有个问题,Android的数据存储有前面的文件存储以及SharedPreferences存储就够了啊!为什么还需要SQLite呢?Android需要SQLite是肯定有原因的啊!当简单的数据,文件存储以及SharedPreferences存储可以应付,但是当有大量的数据,特别是关系式的数据,文件存储以及SharedPreferences存储存储的话有点太牵强了,所以加入SQLite是很有必要的。

来看看Android如何创建数据库?增删改查如何操作?
http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html

觉得上面链接不够清晰,那么看看《第一行代码》第二版章节6.4
链接:http://pan.baidu.com/s/1dFmsM9F 密码:0jy8

觉得上面的的增删改查麻烦?没关系,LitePal会给你很大的便利,用过就会感觉,再也不想碰SQLiteDatabase了。这部分内容在《第一行代码》第二版章节6.5写的很详细。

4.什么是内容提供器?如何访问其他程序的数据?又如何创建自己的内容提供器?

内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,
它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据
的安全性。目前,使用内容提供器是 Android 实现跨程序共享数据的标准方式。
不同于文件存储和 SharedPreferences 存储中的两种全局可读写操作模式,内容提供器可
以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。

如何访问其它程序的数据?
《第一行代码》第2版 章节7.3

创建自己的内容提供器?
《第一行代码》第2版 章节7.4

5.什么是运行时权限?如何在代码中申请?

http://www.cnblogs.com/cr330326/p/5181283.html
在《第一行代码》第2版 7.2章节 写的也是相当详细

6.你是否实时关注你所在领域里的最新的针对开发的信息?这点你认为对你重要吗?

7.Android权限如何分类的?详细说说

http://blog.csdn.net/xsl1990/article/details/17287569
这个博客能够让你在空闲的时间咀嚼咀嚼,Android的权限里面介绍的相当清晰了
下面附上Android权限大全,想要的权限全都在里面:
http://blog.csdn.net/aminfo/article/details/7599858

8.你知道Java当中volatile和strictfp这2个关键字吗?

volatile关键字
简单解释:volatile是一个类型修饰符,它是被设计用来修饰不同线程访问和修改的变量。被volatile类型定义的变量,系统每次用到它时都是直接从对应的内存中提取,而不会利用缓存。在使用了volatile修饰成员变量后,所有的线程在任何时候所看到的变量的值都是相同的。
深度解释:http://www.cnblogs.com/dolphin0520/p/3920373.html

strictfp关键字
http://blog.csdn.net/basenet855x/article/details/6691040

9.讲讲Java中finally和return执行顺序?

http://blog.csdn.net/qj19842011/article/details/45675057

10.什么是Java序列化和反序列化?

http://www.cnblogs.com/xdp-gacl/p/3777987.html

笔者写文章必须借助其他博主的牛逼文章来作参照,这里谢谢那些博主对知识无私的奉献。

阅读全文
2 0