Android NDK区分第一次起机-sqlite3 operation support
2015-06-19 19:02
351 查看
在前文博客:Android——锁定launch - 原生Browser启动 -引导provision 以及Android——sqlite3 基本命令操作 中有分析到android 开机真正的启动apk及其标记位device_provisioned以及android database sqlite3的实际操作。
撰写不易,转载需注明出处:/article/1531671.html本文来自 【jscese】的博客!
application层直接调用Setting类的静态类静态方法即可,native就需要自己添加:
copy sqlite3自带的头文件:external/sqlite/dist/sqlite3.h
其中loaddbinfo为回调函数,&acvalue 传进去的数组名,作为数据载体。
简单方便~
撰写不易,转载需注明出处:/article/1531671.html本文来自 【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; }
简单方便~
相关文章推荐
- Android系统编译错误Note: Some input files use or override a deprecated API. 解决办法
- Android studio常量表达式的错误
- [android](仿联系人)带分类、分类顶部保留替换ListView——StickyList
- UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/su
- Android程序捕获未处理异常,处理与第三方方法冲突时的异常传递
- Android中图片占用内存的计算
- Android事件机制之一:事件传递和消费
- android中string.xml中%1$s、%1$d等的用法
- Android主题和样式
- Android支持RTL(从右向左)语言
- 一步步走进Android MaterialDesign 之 NavigationView
- android:mac本 JNI的编译及调用
- Android 自定义ViewGroup 需求需要重绘Layout上的View
- Android下Activity结束(finish())之后没有释放内存问题的解决方法初探
- GifView——Android显示GIF动画
- android studio debug framework
- android平台的jni
- Android—Ubuntu12.0.4下编译android2.3.7系统源码
- Android Touch事件传递机制
- Android系列---JSON数据解析