1、Andriod应用程序经常会使用到数据的存储在本地或者网络介质中,为了灵活存储各种数据,android中可有文件存储、SharePreference、SQLITE、网络存储等方式。但是在实际应用中哪种方式最适合你会让你做事起到事半功、一劳永逸的效果呢,同时也让你的代码更健壮和更人易懂。
1)一般存储少量数据并且存储内容不是很多,最好数据键值在固定的一个范围内,如:用户名、密码、最后一次登录时间等。
2)一条数据有很多项,而每一项又有好多类别时,就该使用XML文件类型方式存储,如QQ每次登录后、不管是成功与否,都会有一个好友列表,这些好友列表就是存储在本地文件中,下次进来先读取这个列表,如果网络可用再与网络列表保持同步更新。
3)数据量比较大、且经常用到查、删、改功能时,就该使用SQLITE了,这种方式操作快捷、容易操作。
2、关于为程序定义常量、接口、KEY值变量等。
1. 我们经常使用到HashMap、SET、Intent.putExtra(key,value)等,进行数据的封闭和读取,往往这些读写操作不只在一个地方出现,并且学学会有大量重复的代码出现,我为大家提出以下几点介意:
1)全局变量适用表态变量,或者存储在Application中。
2)对特定的类或方法中的KEY、使用接口定义方式,或者类定义,前者可以实现多继承灵活性强,后者适合单继承方式。
3)对某一类别信息,传送的属性特别多时,尽量使用序列化接口或parcel接口方式进行对象传送。
3、为本地存储数据文件建立归类文件夹。
1)为单个用户空间建立目录。
2)为单个用户空间建立Cache、XML、PHOTO、TEMP等文件夹。
3)为所有的用户空间建立一个公共用户文件夹。
4)所有目录结构,应该是在程序运行起来之后,保证建立完成。
5)灵活利用类的继承、封装、抽象等面向对象思想编程。
4、要学会使用间接层进行数据封装.
我们开发的应用程序,特别是应用级程序,经常会使用第三方包进行开发,如使用地图功能,我们会使用百度地图、高德地图等,这些第三方包应用开发也是在不停的更新中,会有一些接口和方法的变动,如果我们将这些包直接应用在我们的程序中而不进行任何封装,当我们开发大型系统时,可能会有好多地方使用到第三方包的接口,如果第三方包一但更新某个接口或者方法名称,直接导致我们的程序到处是问题,为了解决这样的问题,我们应该为第三方包封装一个自己的包,为我们需要用到的接口或者方法都在我们的应用程序封装一个对应的接口,这样来,只要第三方包有更新,我们也不需要从我们的程序中查寻所有变化的代码,这样一来,只要第三方包有更新,我们只要更新我们封装的代码即可。
总结:为第三方包进行封装,虽然在初期需要做许多额外的工作,但是作为一个项目长期发展和和规范来说,这样的投入是必须的,也是值得的。借用Objective-C里面的一代经典的比喻来形容使用间接层的好处:你借了一本cherry的书,今天晚上要还,可cherry距离你有上百公里,今天晚上你的领导GALL要去拜访cherry,这样你可以让GALL帮你把书带给cherry,这样就是让GALL间接帮你把书还给了cherry,这样的比喻我想非常直接的表达出了间接层所带来的好处。