Android有四种数据存储与读取:Preferences/Files/Databases/Network/ContentProvider
1、Preferences----是一个轻量级的存储数据方法
在A中保存数据: SharedPreferences.Editor sharedata = getSharedPreferences("data" , 0).edit(); sharedata.putString("name" , "shenrenkui"); sharedata.commit(); 在B中取数据: SharedPreferences sharedata = getSharePreferences("data" , 0); String data = sharedata.getString("name" , null); Log.i(TAG , "data="+data);
注意:Context.getSharedPreferences(String name , int type)的参数和我们在创建数据权限属性是一样的,存储和取值的过程有点像HashMap但是比HashMap更具人性化,getXXX(Object key ,Object defultReturnValue),第二个参数是当你所要的key对应没有时候返回的值,这就省去了很多逻辑判断。。。
2、Files
file = new File(FILE_PATH , FILE_NAME); file.createNewFile(); //打开文件file的OutputStream out = new FileOutputStream(file); String infoToWrite = "纸上得来终觉浅,绝知此事要躬行"; //将字符串转换成byte数组写入文件 out.write(infoToWrite.getBytes()); //关闭文件file的OutputStream out.close(); //打开文件file的InPutStream in = new FileInputStream(file); //将文件内容全部读入到byte数组 int length = (int)file.length(); btye[] temp = new byte[length]; in.read(temp , 0 ,length); //将byte数组用UTF-8编码并存入display字符串中 display = EncodingUtils.getString(temp , TEXT_ENCODING); //关闭文件file的InpytStream in.close(); }catch(IOException e) { //将出错信息打印到Logcat Log.e(TAG , e.toString()); this.finish(); } //从资源读取 InputStream is = getResources().getRawResource(R.raw.文件名)
3、Databases
Android内嵌了功能比其他手机操作系统强大的关系型数据库SqlSite,我们自己创建的数据可以用adb shell来操作
具体路径是/data/data/package_name/databases
一、SQLite数据库支持null,Integer,real,text,blod(二进制数据)五种数据类型。但有一种情况例外:定义为Integer primary key的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误,另外,SQLite在解析Create Table语句时,会忽略create table语句中跟在字段后面的数据类型信息
二、在程序初始化时候,必须先建立数据库以对数据库进行更新,所以这里需要继承一个SQLiteOpenHelper抽象类,这里有两个方法onCreate(),onUpgreade()两个方法,前者用来创建数据库及对数据库的一些初始化操作,后者是当数据库版本进行更新时候用。
例子:创建一个数据库名nyist,版本为1的数据库,并在数据库中创建一个person表,这里利用了构造函数传入了数据库名和版本常量,参数为Context。
public class DatebaseHelper extends SQLiteHelper{ public final static String NAME="nyist"; public final static int VERSION=1; public DatebaseHelper(Context context){ super(context ,NAME, null ,VERSION); } public void onCreate(SQLiteDatabase db){ db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20) ,age integer)"); } public void onUpgrade(SQLiteDatabase db , int oldVersion ,int newVersion){ db.execSQL("DROP TABLE IF EXISTS person"); onCreate(db); } }
//定义数据库 SQLiteDatabase myDB = null; //打开或建立数据库(当数据库不存在时,自动创建) myDB = this.openOrCreateDatabase("MY_DATABASE_NAME", "MODE_PRIVATE", null); //删除表 、新建表、插入数据、更新数据 myDB.execSQL("...标准的SQL语句...;"); //查询比较麻烦 Crusor c = myDB.rawQuery("SELECT id ,name , tel FROM MY_DATABASE_TABLE WHERE age >1 order by age;" , null); if(c != null){ if(c.moveToFirst()){ do{ Log.w("test" , "id="+c.getString(c.getColumnIndex("id"))); Log.w("test" , "name="+c.getString(c.getColumnIndex("name"))); Log.w("test" , "tel="+c.getString(c.getColumnIndex("tel"))); }while(c.moveToNext()); } } c.close(); //关闭数据库 myDB.close();
相关推荐
2. **数据读取与写入**:`android-serialport-api`提供了读取和写入数据的API。`SerialPort.readBytes()`用于接收串口数据,通常会返回一个包含接收到的字节的数组。`SerialPort.write(buffer, length)`则可以将数据...
在Android开发中,有时我们需要与iOS应用进行交互,或者处理从iOS系统接收的数据。iOS应用通常使用`plist`(Property List)文件格式来存储配置、元数据或简单数据结构。`android-plist-parser-master`是一个专门...
在优化方面,`android-smart-image-view`支持图片的缓存机制,可以将加载过的图片存储在内存或磁盘中,下次加载时直接从缓存读取,显著提高加载速度。此外,还可以通过设置加载策略,如优先从网络加载还是本地缓存...
2. **数据存储**:每当有数据写入数据库时,SqlCipher会先加密数据,然后将其写入磁盘。 3. **数据读取**:读取数据时,SqlCipher会解密从磁盘中读取的数据,再返回给应用程序。 4. **安全性**:由于加密过程完全...
在Android开发中,数据存储是不可或缺的一部分,...总之,这篇博文和源码提供了关于Android应用中安全存储和读取密码的方法,通过学习和实践,开发者可以更好地理解和掌握Android数据存储的策略,提高应用的安全性。
例如,`imread()`用于加载图片,`imshow()`用于显示图像,`Mat`类用于存储图像数据,以及`Core`模块中的矩阵运算等。 3. **图像处理**:OpenCV支持丰富的图像处理函数,如灰度化、直方图均衡化、边缘检测(Canny、...
**Android GPX Parser库详解** ...总之,`android-gpx-parser`是一个实用的工具,它简化了Android应用中处理GPX文件的过程,为开发者提供了高效、灵活的解决方案,促进了GPS数据在Android应用中的广泛应用。
在Android平台上,文件的保存与读取是移动应用开发中不可或缺的部分。无论是用户数据的持久化存储、资源文件的管理还是日志记录,都离不开文件操作。以下将详细讲解Android中如何进行文件的保存和读取。 首先,...
5. **处理图像**:`ImageReader`的`onImageAvailable`回调中,读取图像数据,通过`ImageSaver`保存到文件系统。 五、源码中的优化与注意事项 1. **权限管理**:确保在运行时获取了`Manifest.permission.CAMERA`...
尤其是在网络传输和存储时,如何有效地压缩图片以减少数据量,同时保持图片质量,是一个重要的技术挑战。ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar是一个专门针对这个问题的解决方案,它提供了一种...
在Android开发过程中,数据备份和恢复是至关重要的环节,尤其是对于...总的来说,"android-backup-tookit" 是一款强大的Android数据备份解决方案,它大大简化了开发流程,提高了开发效率,同时确保了用户数据的安全性。
这里的`fromAsset()`方法指定了PDF文件的路径,你可以根据实际情况调整,如从网络下载或本地存储读取。 4. **自定义配置**: - `android-pdfview`提供了丰富的API,可以进行页面缩放、平移、双页模式等设置。例如...
- **自动序列化**:支持对象的序列化和反序列化,方便数据的存储和读取。 - **多线程安全**:ORMLite库是线程安全的,可以在多线程环境中放心使用。 4. **ORMLite的局限与优化**: - **性能**:相比于原生的SQL...
在Android开发中,数据存储是不可或缺的一部分,而SQLCipher则为Android提供了一种安全的方式来存储敏感数据。SQLCipher是一个开源的SQLite数据库加密扩展,它允许开发者对SQLite数据库进行透明的加密,确保数据在...
在Android应用开发中,SQLite是一个内置的轻量级数据库,用于存储应用程序的数据。SQLite支持标准的关系型数据库功能,如创建、查询、更新和删除数据,是Android应用进行本地数据持久化的重要工具。`sqlite-android`...
例如,`cv::imread()`用于读取图像,`cv::imshow()`显示图像,`cv::Mat`对象用于存储和操作图像数据,`cv::blur()`或`cv::GaussianBlur()`进行图像平滑处理,`cv::Canny()`用于边缘检测。 **5. 机器学习与计算机...
在Android应用开发中,有时我们需要提供给用户选择文件或目录的功能,例如在上传附件、保存数据或读取本地资源时。这时,一个良好的文件选择器就显得尤为重要。Android-FilePicker正是这样一个专为Android平台设计的...
文件存储是另一种常见的Android数据存储方式,适合大量结构化或非结构化数据的存储。Android提供了多种文件操作API,如`openFileInput()`和`openFileOutput()`,可以用来读写文件。文件存储分为内部存储和外部存储:...
在Android项目中,你可能需要在代码中读取或修改这些配置,以便调整节点行为。 4. **连接ROS Master**:在Android设备上运行ROS,首先要确保设备能够连接到ROS Master,通常是通过WiFi或USB连接到运行ROS的主机。...
通过使用SQLCipher,开发者可以确保他们的Android应用不仅具备高效的数据存储能力,同时还能提供高级别的数据安全防护。然而,需要注意的是,虽然SQLCipher加强了数据库的安全性,但并不能完全替代整体安全策略,...