Android NDK区分第一次起机-sqlite3 operation support
来源:互联网 发布:java小程序源码 编辑:程序博客网 时间:2024/05/16 05:54
在前文博客:Android——锁定launch - 原生Browser启动 -引导provision 以及Android——sqlite3 基本命令操作 中有分析到android 开机真正的启动apk及其标记位device_provisioned以及android database sqlite3的实际操作。
撰写不易,转载需注明出处:http://blog.csdn.net/jscese/article/details/46506709本文来自 【jscese】的博客!
application层直接调用Setting类的静态类静态方法即可,native就需要自己添加:
添加支持:
android.mk中添加:
LOCAL_SHARED_LIBRARIES +=libsqlite
copy sqlite3自带的头文件:external/sqlite/dist/sqlite3.h
check操作:
直接贴实现代码:
/*====================db==cmd============================*/#define PROVISIONED_DB_NAME "/data/data/com.android.providers.settings/databases/settings.db"#define QUERY_DEVICE_PROVISIONED_CMD "select * from global where name='device_provisioned'"static int checkdeviceprovisioned() { char acvalue[10] = {'\0'}; sqlite3 * sdb = 0; if (sqlite3_open(PROVISIONED_DB_NAME, &sdb) != SQLITE_OK) { ERROR("open error! : %s\n", sqlite3_errmsg(sdb)); goto error; } if (sqlite3_exec(sdb, QUERY_DEVICE_PROVISIONED_CMD, '''loaddbinfo''', &acvalue, NULL) != SQLITE_OK) { ERROR("select provisioned error\n"); goto error; } if (strcmp(acvalue, "1") != 0) { ERROR("device_provisioned =0 :the device is not ready\n"); goto error; } sqlite3_close(sdb); sdb = 0; return 1; error: sqlite3_close(sdb); sdb = 0; return -1;}
其中loaddbinfo为回调函数,&acvalue 传进去的数组名,作为数据载体。
/*settings.db-global table-format: ID|NAME|VALUE*//*CREATE TABLE global (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);*//*now get value*/int loaddbinfo( void * pbuffer, int icolumn, char ** pvalue, char ** pname ){ for( int iloop = 0 ; iloop < icolumn; iloop++ ) { if((iloop==icolumn-1)&&(pbuffer != NULL)) { strcpy((char *)pbuffer,pvalue[iloop]); //上面char类型array的,类型转换 } } return 0;}
简单方便~
1 0
- Android NDK区分第一次起机-sqlite3 operation support
- android ndk NEON Support
- android ndk x86 Support
- android ndk MIPS Support
- Android NDK Sqlite3 加密技术
- android ndk not support pthread_cancel
- android ndk not support pthread_cancel
- Support NDK in Android studio.
- Android Studio ndk第一次使用
- android ndk Support for 64-bit x86
- NDK之CPLUSPLUS-SUPPORT(C++支持的android NDK)
- C++ support with the Android NDK: NDK的官方文档,NDK对C++的支持
- Android:Native C源码(NDK)如何使用sqlite3进行编程?
- The new NDK support in Android Studio 1.3
- AndroidStudio NDK开发 错误: 无法访问android.support.v7.app.AppCompatActivity
- 使用NDK开发SQLite3
- 使用NDK开发SQLite3
- Android之JNI NDK如何取消native support 重新add native support
- OJ嘻唰唰 我想放假
- 【Pytest】fixture函数介绍(重点)
- python import 同名模块
- 通过函数使数组中的奇数在偶数的前面
- HDU -- 1247 Hat’s Words (Trie 树)
- Android NDK区分第一次起机-sqlite3 operation support
- Android开源项目分类汇总
- 如何使用VS2008命令行选项查看对象的内存布局 ?
- 第14周-阅读项目4-二进制文件和字符串流操作的一般方法
- .vimrc
- CONTAINING_RECORD宏的含义
- Android Multimedia 相关
- python-sphinx 2.6.5的一个bug
- Leetcode---(38)Count and Say