Android查看手机内部储存目录及数据库文件

本文介绍了如何查看Android手机内部储存目录和数据库文件,包括通过代码获取内部和外部储存缓存目录,并讨论了使用未root模拟器或Android Studio的Android Device Monitor查看文件系统的方法。还分享了如何导出数据库文件并利用sqlitestudio进行查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们平时开发的时候会经常用到文件缓存,常用的是手机内部储存和手机外部储存,手机内部存储主要包括APP安装后的一些文件,外部储存就是大家通常可以使用的空间,用来存点图片电影之类的。

当需要快速读取的缓存文件一般放在内部储存中,因为内部储存比外部储存快,外部储存一般存一些比较大的文件,读写频率较低,外部存储容量也远远大于内部储存。

内部存储目录解释:

外部存储目录解释:

代码获取内部储存缓存目录如下:

String innerCachePath = context.getCacheDir().getAbsolutePath();

输出:/data/user/0/com.example.test/cache

代码获取外部储存目录如下:

String outerCachePath = context.getExternalCacheDir().getAbsolutePath();

输出:/storage/emulated/0/Android/data/com.example.test/cache

当然也可以指定其他目录,这样指定的好处是删除APP时就一起删除了

现在来看下手机的文件系统吧,由于市面上的手机都是上锁了的,是不能直接看到内部文件的,所以必须解锁和root,不过现在的手机真的是root很麻烦,这里我就不root,直接用模拟器,Android stuido自带的模拟器非常卡,这里用第三方的模拟器,比如  夜神、海马玩,都是比较好用的,模拟器一般是root过的,所以能看到内部文件。

注意:最新A

Android中,要在手机内部存储中创建数据库文件,通常我们会使用SQLite,它是轻量级的关系型数据库管理系统。以下是步骤: 1. **添加依赖**:在AndroidManifest.xml中添加对SQLite支持的权限,并在build.gradle(Module: app)中引入sqlite-jdbc库(如果你使用的是纯Java编写,不需要这个): ```xml <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application> <meta-data android:name="android.database.sqlite.jdbcdriver" android:value="org.sqlite.JDBC" /> </application> ``` 2. **创建DatabaseHelper**:创建一个继承自SQLiteOpenHelper的类,它负责管理数据库的打开、关闭以及版本升级等操作: ```java public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "my_database.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } // ...其他方法,如onCreate(), onUpgrade()... } ``` 3. **onCreate()和onUpgrade()方法**:在这些方法中,你可以定义表结构并创建SQL语句。例如: ```java @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS users"); // 如果有旧版本的数据表,先删除 onCreate(db); } ``` 4. **使用数据库**:通过DatabaseHelper实例获取数据库并执行读写操作: ```java DatabaseHelper dbHelper = new DatabaseHelper(getBaseContext()); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 插入数据 String insertQuery = "INSERT INTO users (name, email) VALUES (?, ?)"; ContentValues contentValues = new ContentValues(); contentValues.put("name", "John Doe"); contentValues.put("email", "john.doe@example.com"); db.insert("users", null, contentValues); // 查询数据 Cursor cursor = db.rawQuery("SELECT * FROM users WHERE id = ?", new String[] { "1" }); if (cursor.moveToFirst()) { String name = cursor.getString(cursor.getColumnIndex("name")); String email = cursor.getString(cursor.getColumnIndex("email")); // 使用数据 } cursor.close(); db.close(); ``` 5. **注意权限**:确保在运行时请求了读写外部存储的权限。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值