安卓开发安卓11读取data,怎么从安卓手机原厂资料中提取根目录下的data

1,怎么从安卓手机原厂资料中提取根目录下的data要用专业的解包软件解多数是在system.img里边没有的话就解包 boot.imgdata所在的文件会比较大
2,安卓11怎么移动data里面的文件在安卓11中移动data文件的步骤如下:1.打开文件管理器,找到data文件夹;2.选择要移动的文件 , 点击右上角的三个点;3.选择“移动”,然后选择要移动到的文件夹;4.点击“确定” , 文件就会被移动到新的文件夹中 。
3,安卓手机如何打开data文件安卓手机打开.data文件需要root之后才可以 。手机获得root权限后打开安卓手机的文件管理,找到data文件,点击就可以直接打开data文件,查看里面的文件内容了 。部分手机文件管理没有root权限,造成无法打开data文件,这时间就需要root手机获取权限,再使用上面的方法打开 。.data属于系统文件,安卓手机需要root以后才可以访问系统级别的文件,手机获得root权限后使用文件管理就可以查看Data文件中的内容了 。1、打开安卓手机的文件管理2、打开本地文件 , 寻找你想找的文件3、找到data文件4、点击可以直接打开data文件,查看里面的文件内容了安卓手机获得ROOT权限的方法如下所示:1、打开手机,点击进入手机应用商店 。2、进入到应用商店中 , 我们输入“ROOT”关键词,然后选择一款比较合适而又稳定的ROOT应用 。3、打开应用 , 根据应用的提示扫描手机,接着就会显示手机的各种信息,包括手机型号、存储等 。4、找到类似“获取ROOT权限”功能的选项,应用就会自动的获取手机的ROOT权限(各软件步骤和操作方法略有不同),获取ROOT权限后应用会提醒用户重启手机,我们重启手机后才会生效 。注意:手机在ROOT之前一定要备份手机的数据以及文件 。【安卓开发安卓11读取data,怎么从安卓手机原厂资料中提取根目录下的data】
4 , 华为手机出现安卓11data访问权限限制怎能办经确认该情况是由于谷歌在安卓11的功能上进行了部分更改,所以在对Andriod路径下的“data”,“obb”等目录进行操作时会出现此提示,并非手机异常1、首先,解锁华为手机手机进入后,在手机中选择设置的图标进入 。2、进入手机设置界面后,选择页面中的安全和隐私的选项 。3、在安全和隐私界面,选择更多安全设置选项进入 。4、点击进入后,可以看到使用情况访问权限的选项,点击该选项 。5、进入后,选择需要关闭使用情况访问权限的应用进入 。6、进入后,将允许访问使用记录后方的开关关闭即可 。只要按照这个步骤,用户就可以轻松的解决安卓11data访问限制的问题 。5 , 安卓开发怎么获取datadata目录String printTxtPath = getApplicationContext().getPackageResourcePath() + "/files/" + fileName;=> /data/app/com.example.fileoperation-2.apk/files/printMenu.txtString printTxtPath = getApplicationContext().getFilesDir();String printTxtPath = getApplicationContext().getFilesDir().getAbsolutePath();=> /data/data/com.example.fileoperation/files//获取当前程序路径getApplicationContext().getFilesDir().getAbsolutePath();//获取该程序的安装包路径String path=getApplicationContext().getPackageResourcePath();//获取程序默认数据库路径getApplicationContext().getDatabasePath(s).getAbsolutePath();getFiles().getParent差不多就是这样String path=Environment.getDataDirectory().getPath();用eclipse-DDMS获取Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象android中,sdcard中的文件都可以删除删除方式:1. 在手机上点击文件管理,进入文件管理 。2. 点击sd卡,选择android目录,长按后弹出提示,点击删除 。3. 将手机或者sd卡连接电脑,在电脑上删除即可 。6,android 怎么读取数据库中的数据android读取数据库可以使用sqlite一些api进行读取 , 实例如下:1234567891011121314151617181920/** * 查找一条数据 * @param uid */ publicUser find(Integer uid) SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类 Cursor cursor =db.rawQuery("select * from user where uid=?", newString[] if(cursor.moveToFirst()) intuid2=cursor.getInt(cursor.getColumnIndex("uid")); String uname=cursor.getString(cursor.getColumnIndex("uname")); String uaddress=cursor.getString(cursor.getColumnIndex("uaddress")); User user=newUser(); user.setUid(uid2); user.setUname(uname); user.setUaddress(uaddress); returnuser; } cursor.close(); returnnull; }Android里面Sqlite的使用使用步骤1,创建一个SqliteOpenHelper的子类public class MySqliteOpenHelper extends SQLiteOpenHelper onCreate方法:在第一次调用getReadableDatabase(),getWriteableDatabase()方法里调用【如果磁盘上没有数据库文件就会调用】onOpen方法:在调用getReadableDatabase(),getWriteableDatabase()调用onUpgrade()方法,当数据库版本提升时调用getWritableDatabase()得到可读可写的数据库操作对象 。如果内存不足 , 该方法会锁定数据库,并抛异常getReadableDatabase()得到可读写的数据库操作对象 , ,如果内存不足,数据库就只能写了2,重写onCreate方法public MySqliteOpenHelper(Context context) @Override public void onCreate(SQLiteDatabase db) 3,初始化数据库 //创建数据库public void mysqlite(View view)//创建实现工具类DBHelper dh = new DBHelper("test.db",1);//连接数据库 获取数据库实例//getWritableDatabase() 数据写满会报错//getReadableDatabase() 数据写满不会报错SQLiteDatabase sd = dh.getWritableDatabase();sd.close();4,对数据库进行CRUD参考demo:public class DBHelper { private final static String DATABASE_NAME = "TestDB2.db";// 数据库文件名 private final static int VERSION = 1;// 数据库版本 private final static String TABLE_NAME = "users";// 表名 private final static String _ID = "_id";// 编号 private final static String NAME = "name";// 用户名字段 private final static String PASSWORD = "password";// 用户密码 // 操作数据库的类 private SQLiteDatabase database; MySQLiteOpenHepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class MySQLiteOpenHepler extends SQLiteOpenHelper { public MySQLiteOpenHepler(Context context) { super(context, DATABASE_NAME, null, VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 String sql = "CREATE TABLE " + TABLE_NAME + "( " + _ID + " Integer primary key autoincrement," + NAME + " TEXT, " + PASSWORD + " TEXT)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } public DBHelper(Context context) { hepler = new MySQLiteOpenHepler(context); database = hepler.getWritableDatabase(); } // 添加 public void insert(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.insert(TABLE_NAME, null, values); } // 修改 public void update(User user) { ContentValues values = new ContentValues(); values.put(NAME, user.getName()); values.put(PASSWORD, user.getPassword()); database.update(TABLE_NAME, values, _ID + "=?", new String[] { String.valueOf(user.getId()) }); } // 删除 public void delete(int id) { database.delete(TABLE_NAME, _ID + "=?", new String[] { String.valueOf(id) }); }// 查询一个 public User queryById(int id) { User u = null; Cursor cursor = database.query(TABLE_NAME, null, _ID + "=?", new String[] { String.valueOf(id) }, null, null, null); if (cursor.getCount() > 0) { cursor.moveToNext(); u = new User(cursor.getInt(0), cursor.getString(1), cursor.getString(2)); } return u; } }android里面sqlite的使用 使用步骤 1,创建一个sqliteopenhelper的子类 public class mysqliteopenhelper extends sqliteopenhelper { private static final int database_version = 1;//数据库版本 public static final string database_name="user.db";//数据库文件 名 public static final string table_name="user";//表名 //字段名 public static final string id="id"; public static final string name="name"; public static final string age="age"; /** * 构造方法 * @param context :上下文 * @param name :数据文件名 * @param factory :数据库工厂 使用过程中传null * @param version :数据库版本 1 */ public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } /** * 当数据库打开时调用 * @param db 数据库操作对象 */ @override public void onopen(sqlitedatabase db) { super.onopen(db); system.out.println("-------onopen"); } /** * 创建数据库的方法 * @param db 数据库操作对象 crud ---create read update delete */ @override public void oncreate(sqlitedatabase db) { system.out.println("-------oncreate"); } /** *当数据库的版本有提升时调用 * @param db 数据库操作对象 * @param oldversion 老版本号 * @param newversion 新版本号 */ @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { //更新表 //更新数据 system.out.println("-------onupgrade"); } /** * 当数据库版本降低时调用 ---没什么用 * @param db * @param oldversion * @param newversion */ @override public void ondowngrade(sqlitedatabase db, int oldversion, int newversion) { super.ondowngrade(db, oldversion, newversion); system.out.println("-------onupgrade"); }} oncreate方法:在第一次调用getreadabledatabase() , getwriteabledatabase()方法里调用【如果磁盘上没有数据库文件就会调用】 onopen方法:在调用getreadabledatabase(),getwriteabledatabase()调用 onupgrade()方法,当数据库版本提升时调用 getwritabledatabase()得到可读可写的数据库操作对象 。如果内存不足,该方法会锁定数据库,并抛异常 getreadabledatabase()得到可读写的数据库操作对象,,如果内存不足,数据库就只能写了 2,重写oncreate方法 public mysqliteopenhelper(context context) { super(context, database_name, null, database_version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } 3,初始化数据库 //创建数据库 public void mysqlite(view view) { //创建 实现工具类 dbhelper dh = new dbhelper("test.db",1); //连接数据库 获取数据库实例 //getwritabledatabase() 数据写满会报错 //getreadabledatabase() 数据写满不会报错 sqlitedatabase sd = dh.getwritabledatabase(); sd.close(); 4,对数据库进行crud 参考demo: public class dbhelper { private final static string database_name = "testdb2.db";// 数据库文件名 private final static int version = 1;// 数据库版本 private final static string table_name = "users";// 表名 private final static string _id = "_id";// 编号 private final static string name = "name";// 用户名字段 private final static string password = "password";// 用户密码 // 操作数据库的类 private sqlitedatabase database; mysqliteopenhepler hepler; // 写一个内部类去处理数据库的创建和版本的更新 class mysqliteopenhepler extends sqliteopenhelper { public mysqliteopenhepler(context context) { super(context, database_name, null, version); } @override public void oncreate(sqlitedatabase db) { // 创建表 string sql = "create table " + table_name + "( " + _id + " integer primary key autoincrement," + name + " text, " + password + " text)"; db.execsql(sql); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { } } public dbhelper(context context) { hepler = new mysqliteopenhepler(context); database = hepler.getwritabledatabase(); } // 添加 public void insert(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.insert(table_name, null, values); } // 修改 public void update(user user) { contentvalues values = new contentvalues(); values.put(name, user.getname()); values.put(password, user.getpassword()); database.update(table_name, values, _id + "=?", new string[] { string.valueof(user.getid()) }); } // 删除 public void delete(int id) { database.delete(table_name, _id + "=?", new string[] { string.valueof(id) }); }// 查询一个 public user querybyid(int id) { user u = null; cursor cursor = database.query(table_name, null, _id + "=?", new string[] { string.valueof(id) }, null, null, null); if (cursor.getcount() > 0) { cursor.movetonext(); u = new user(cursor.getint(0), cursor.getstring(1), cursor.getstring(2)); } return u; } }

    推荐阅读