• android把数据库伪装成so文件


    经常我们需要使用一些事先做好内容的数据库,比如字典等, 这就要加载已有的数据库文件,通常把它们放在assets 或者raw中,在程序运行时copy到程序内部空间,

    但是这样有个缺点,当文件较大时会占用较长的时间,用户难免会有点小着急。

    我们可以这样HACK来把copy的环节省去:

    1 把数据库文件(如MYDB.db) 放到PROJECT/libs/armeabi/ 改名为libMYDB.db.so(注意前面必需加”lib")。

    2 用这样的方式打开:

    DATABASE_PATH = "/data/data/" + packageName + "/lib/";
            
    SQLiteDatabase db = SQLiteDatabase.openDatabase(DATABASE_PATH + libMYDB.db.so, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
          

    ----------------------------------------------------

    // 注意路径
        private String DATABASE_PATH = "/data/data/" + "com.cjoan.www.xiaohua" + "/lib/";
        private SQLiteDatabase stuDb;
    // 数据库加载
            stuDb = SQLiteDatabase.openDatabase(DATABASE_PATH + "libxiaohua.db.so", null,
                    SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
    
    
            Cursor rawQuery = stuDb.rawQuery("select * from article where id=?", new String[] { "1" });
            System.out.println(rawQuery.moveToFirst());
            if (rawQuery.moveToFirst())
                String title = rawQuery.getString(1);
  • 相关阅读:
    反转链表 --剑指offer
    链表的倒数第K个节点
    打印1到最大的n位数----java实现
    Permutations java实现
    Generate Parentheses java实现
    Binary Tree Level Order Traversal java实现
    hadoop中日志聚集问题
    PIG的配置
    hadoop2.20.0集群安装教程
    Map/Reduce之间的Partitioner接口
  • 原文地址:https://www.cnblogs.com/spadd/p/4435786.html
Copyright © 2020-2023  润新知