
Android平台开发过程中,进行数据存储的方式有五种,一下是这五种数据存储的总结:
第一种: 使用SharedPreferences存储数据
适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等
核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data/<package name>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferencesedit()获取的内部接口Editor对象实现。 SharedPreferences本身是一 个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要 *** 作的xml文件名,第二个参数具体如下:
ContextMODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
ContextMODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
ContextMODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写
Editor有如下主要重要方法:
SharedPreferencesEditor clear():清空SharedPreferences里所有数据
SharedPreferencesEditor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferencesEditor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改
实际案例:运行界面如下
这里只提供了两个按钮和一个输入文本框,布局简单,故在此不给出界面布局文件了,程序核心代码如下:
读写其他应用的SharedPreferences: 步骤如下
1、在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取
2、创建其他应用程序对应的Context:
Context pvCount = createPackageContext("comtonyapp", ContextCONTEXT_IGNORE_SECURITY);这里的comtonyapp就是其他程序的包名
3、使用其他程序的Context获取对应的SharedPreferences
SharedPreferences read = pvCountgetSharedPreferences("lock", ContextMODE_WORLD_READABLE);
4、如果是写入数据,使用Editor接口即可,所有其他 *** 作均和前面一致。
SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多 *** 作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储 *** 作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
第二种: 文件存储数据
核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式。具体有以下值可选:
MODE_PRIVATE:为默认 *** 作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可 以使用ContextMODE_APPEND
MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
除此之外,Context还提供了如下几个重要的方法:
getDir(String name , int mode):在应用程序的数据文件夹下获取或者创建name对应的子目录
File getFilesDir():获取该应用程序的数据文件夹得绝对路径
String[] fileList():返回该应用数据文件夹的全部文件
实际案例:界面沿用上图
核心代码如下:
openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cntonyapp/files/messagetxt,
下面讲解某些特殊文件读写需要注意的地方:
读写sdcard上的文件
其中读写步骤按如下进行:
1、调用Environment的getExternalStorageState()方法判断手机上是否插了sd卡,且应用程序具有读写SD卡的权限,如下代码将返回true
EnvironmentgetExternalStorageState()equals(EnvironmentMEDIA_MOUNTED)
2、调用EnvironmentgetExternalStorageDirectory()方法来获取外部存储器,也就是SD卡的目录,或者使用"/mnt/sdcard/"目录
3、使用IO流 *** 作SD卡上的文件
注意点:手机应该已插入SD卡,对于模拟器而言,可通过mksdcard命令来创建虚拟存储卡
必须在AndroidManifestxml上配置读写SD卡的权限
<uses-permission android:name="androidpermissionMOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE"/>
案例代码:
第三种:SQLite存储数据
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧
SQLiteDatabase类为我们提供了很多种方法,上面的代码中基本上囊括了大部分的数据库 *** 作;对于添加、更新和删除来说,我们都可以使用
以上三个方法的第一个参数都是表示要 *** 作的表名;insert中的第二个参数表示如果插入的数据每一列都为空的话,需要指定此行中某一列的名称,系统将此列设置为NULL,不至于出现错误;insert中的第三个参数是ContentValues类型的变量,是键值对组成的Map,key代表列名,value代表该列要插入的值;update的第二个参数也很类似,只不过它是更新该字段key为最新的value值,第三个参数whereClause表示WHERE表达式,比如“age > and age < ”等,最后的whereArgs参数是占位符的实际参数值;delete方法的参数也是一样
下面给出demo
数据的添加
1使用insert方法
在上面的代码示例中,已经用到了这几个常用方法中的一些,关于更多的信息,大家可以参考官方文档中的说明。
最后当我们完成了对数据库的 *** 作后,记得调用SQLiteDatabase的close()方法释放数据库连接,否则容易出现SQLiteException。
上面就是SQLite的基本应用,但在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库 *** 作类,然后以这个类为基础,再封装我们的业务逻辑方法。
这里直接使用案例讲解:下面是案例demo的界面
Android sqlite3数据库管理工具
Android SDK的tools目录下提供了一个sqlite3exe工具,这是一个简单的sqlite数据库管理工具。开发者可以方便的使用其对sqlite数据库进行命令行的 *** 作。
程序运行生成的db文件一般位于"/data/data/项目名(包括所处包名)/databases/db",因此要对数据库文件进行 *** 作需要先找到数据库文件:
1、进入shell 命令
adb shell
2、找到数据库文件
#cd data/data
#ls --列出所有项目
#cd project_name --进入所需项目名
#cd databases
#ls --列出现寸的数据库文件
3、进入数据库
#sqlite3 test_db --进入所需数据库
会出现类似如下字样:
SQLite version 3622
Enter "help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
至此,可对数据库进行sql *** 作。
4、sqlite常用命令
>databases --产看当前数据库
>tables --查看当前数据库中的表
>help --sqlite3帮助
>schema --各个表的生成语句
以上便是android开发存储数据的五种方法!
自学Android到什么程度才能找到工作对于自学Android的朋友们来说这是最疑问的事情,选择自学Android的原因一般氛围两点,一点是爱好想要业余学习一下,另外一种就是想从事Android行业的,不管是哪种,都可以了解一下自学Android到什么程度才能找到工作,毕竟这个行业的前景还是很可观,不仅需求量大,而且薪资待遇都是非常不错的。
接下来就跟着昌平北大青鸟一起了解自学Android都需要学习哪些知识吧!
1、Java基础
Java语言其实应用很广泛,对于Android开发来说只需要你掌握JavaSE就够了,尤其对于一个Android初学者只需要掌握Java基础就行,这包括哪些呢我粗略的列了下,主要包括:
Java基本语法、面向对象相关的基本概念与思想,常用String类的api,异常处理,IO基础,容器,多线程,内存管理与垃圾回收,知道并最好知道几种常见的Java设计模式等,建议可以找些网上Java面试宝典之类的文章,熟悉下面试常遇到的一些Java知识点,一般都是Java基础。
2、Android基础
Java如果算基础中的基础,那这部分才是你找工作的核心技能,毕竟你要从事的是Android开发,所以Android基础一定要牢固,这部分包括:
Android基础UI控件的熟练掌握,也就是指Button、TextView、EditText、CheckBox、RadioButton、ImageView、Spinner、ProgressBar、SeekBar、ListView、RecycleView、ScrollView等,可能不全,以上只是一时想到的,可自行补充。
Android四大组件的理解与熟练掌握,四大组件就不必说了吧,具体掌握到什么程度呢如果我问到「Activity的生命周期」你还支支吾吾的那我就没心情继续问下去了,其他一些如Activity的四种启动模式,Fragment的生命周期、Fragment与Activity之间的关系,BroadcastReceiver、ContentProvider、Service的使用场景与具体用法,更细节点的如BroadcastReceiver的广播类型与不同的注册方式的区别等都应该关注并理解到位。
动画相关也是必须掌握的,不管是矢量动画还是属性动画的api都应该熟练,一些简单的动画应该随手就能写出来才行。
自定义View得会吧这个在实际的开发中经常遇到,因为基本的那些UI控件不可能完全满足你的需求。
Sqlite与SQL语句得掌握吧,数据库虽然说在客户端开发上只有特定的业务或者场景才用得到,但是SQL语句这是基础,基本的 *** 作sqlite相关的api也必须要掌握。
随着移动互联网的发展,各种智能手机APP接踵而来,在手机APP应用市场中,数量最多的就是Android开发的手机软件了。Android开发也成为当下较热门行业。那么,昌平北大青鸟就告诉你,想要学习Android开发,需要学习哪些课程
Java面向对象编程
1、Java基本数据类型与表达式,分支循环。
2、String和StringBuffer的使用、正则表达式。
3、面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类,Java的垃极回收机制,Javadoc介绍。
4、对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析;对象的多态性:子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。
5、Java异常处理,异常的机制原理。
6、常用的设计模式:Singleton、Template、Strategy模式。
7、JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8、Java集合介绍:Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。
9、JavaI/O输入输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常用包装类,计算机编码。
10、Java高级特性:反射、代理和泛型。
11、多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。
12、Socket网络编程。
Javaweb开发
1、Java解析XML文件DOM4J。
2、MySql数据库的应用、多表连接查询的应用。
3、Jsp和Servlet应用。
4、>
5、Tomcat服务器的应用配置。
6、WebService服务配置应用。
androidUI编程
1、Android开发环境搭建:Android介绍,Android开发环境搭建,先进个Android应用程序,Android应用程序目录结构。
2、Android初级控件的使用:TextView控件的使用Button控件的使用方法EditText控件的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法。
3、Android高级控件的使用:Autocompletion的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法。
4、对话框与菜单的使用:Dialog的基本概念AlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定义Menu的实现方法。
5、控件的布局方法:线性布局的使用方法相对布局的使用方法表格布局的使用方法。
6、多Acitivity管理:AndroidManifestxml文件的作用,Intent的使用方法,使用Intent传递数据的方法,启动Activity的方法,IntentFilter的使用方法,ActivityGroup的使用方法。
7、自定义控件实现方法:自定义ListView的实现方法,可折叠ListView的使用方法,自定义Adapter的实现方法,自定义View的实现方法,动态控件布局的上实现方法。
昌平北大青鸟老师介绍Android是使用Java语言进行应用开发的,对于一个刚刚入门的初学者,想要开发一个简单的Android应用,需要哪些java知识储备以及还要接触哪些方面的知识今天就有昌平计算机学校来告诉大家初学安卓开发所需要哪些基础知识。
学习安卓开发需要什么基础安卓开发难学吗:
Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。当然你也可以这样一知半解先尝试去做项目,条条大道通罗马,那么Java学到什么程度才算是过关呢个人认为至少要掌握以下两个方面的内容:
1)Java基础语法:具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;
2)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。这部分内容可以在《EffectiveJava》和《AgileSoftwareDevelopment:Principles,PatternsandPractices》这两本书中找到。
Linux基础知识,数据库基础知识这个比较简单,就是一个增删改查的数据库 *** 作,可以看一下这本书:《SQL编程练习与解答》中间还需要了解网络协议等等各种基础知识,而有些计算机专业的学生,有一定经验的Java学习经验,这些人重点需要学习在Android所新增部分API及其工作原理。
最后昌平北大青鸟还是建议大家能够去专门的培训结构彻底的详细的去接受android开发培训,让自己成为专业的安卓开发工程师,而不是半路出来的半吊子,不过哪一门开发语言,一定要学的扎实,专业,至于选择什么学校,就看大家自己的判断了。
入门学习android需要做哪些准备,安卓电子产品的不断冲击国际市场,安卓相关的软件也越来越多,安卓工程师的市场需求也水涨船高,可以说,android工程师是一个越来越受欢迎的IT职业之一。
入门学习android需要做哪些准备:
1、最好先熟悉一门编程语言,现在计算机专业一般都会开设C语言课程,android入门学习必须要有C语言基础课程。
2、具备一定的数据结构和算法基础知识,这是华清远见很多讲师给学员们坚持强调的一点,如果你能够做到对原理有所了解,在应用数据结构和算法时,你会更加清楚应该选择哪一个。
3、android应用的开发语言用的是java语言,所以在学习android开发之前,可以先把java基本语法和JavaSE的基础类库好好来学习一下。
4、在android中会用到数据库来存储数据,因此可以提前对数据库知识做相关的储备,如果有条件,最好能够安装一个数据库来进行实际的 *** 作。
android入门要学什么应该做哪些学习准备建议大家还是使用MicrosoftSQLServer或者MySQL就可以了,这两种也都是我们学习数据库的好平台。
学习android开发技术除了需要具备以上技能和知识点之外,还应该做到这些。
1、热爱编程语言,兴趣在学习过程当中占据了很重要的地位,当然也是学习的源动力。
2、要善于思考,android开发最基础也是最重要的一个环节就是编程,北京计算机学习认为需要程序员具备很强的逻辑性和运算能力,尤其是在安卓开发环境搭建时体现的更为明显。
3、要学会总结:如果想在android开发领域走的更远,就应该时刻总结编程经验,最终找到适合自己的学习方法,学会不断总结学习成果和方法,这样的学习效率才更高。
学习分三个阶段:
1,Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深层实现
2,Android进阶初级:组件Widget/ 菜单Menu/ 布局Layout 详解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL数据库原理,。
SQLite /SharedPreferences/File详解 多媒体Audio/Video/Camera 详解
3,Android进阶高级:蓝牙/WIFI SMS/MMS 应用实现 深层次解析GPS原理。
实现LocationManager/LocationProvider 进行定位/跟踪/查找/趋近警告以及Geocoder正逆向编解码等技术细节 2D图形库(Graphics/View)详解 SDCARD/传感器/手势 应用实现
扩展资料:
知识体系
1、Unix/Linux平台技术:基本命令,Linux下的开发环境
2、企业级数据库技术:SQL语言、SQL语句调优、Oracle数据库技术
3、Java 语言核心技术:Java语言基础、Java面向对象编程、JDK核心API、Java集合框架、Java网络编 程、JavaI/O编程、Java多线程编程、Java异常机制、Java安全、JDBC、XML
4、软件工程和设计模式:软件工程概述、配置管理及SVN、UML、基本设计模式
5、Android应用开发基础:Android开发平台、Eclipse+ADT开发环境、AVD及传感模拟器调试、Android核心组件、Android常用组件、Android高级组件、文件及网络访问、SQLite数据库编程、后台服务编程
6、互联网核心技术: HTML、CSS、JavaScript、JQuery、Ajax应用
7、Android高级应用开发:音频\视频\摄像头、互联网应用、GPS和位置服务、Google Map、2D\3D绘制、传感器开发、游戏开发、电话及SMS服务、网络\Bluetooth\Wi-Fi等。
8、Android系统级开发:移植、驱动、NDK(C方向)。
9、JavaEE核心技术:Servlet核心技术、JSP核心技术、Struts、Spring、Hibernate框架。
参考资料:
以上就是关于android开发怎么存储数据全部的内容,包括:android开发怎么存储数据、昌平北大青鸟分享安卓开发需要学习哪些知识、昌平北大青鸟分享Android开发需要学习哪些内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)