尝试环境:

  Android2.2(源码) SDK

  android-ndk-r7

尝试在NDK下面使用C语言做Android的SQLite3数据库存储功能。做了如下尝试:

在Android的源代码中找到sqlite3.h和libsqlite.so拷贝到NDK的lib(D:\android\android-ndk-r7-linux\platforms\android-3\arch-arm\usr\lib)和include(D:\android\android-ndk-r7-linux\platforms\android-3\arch-arm\usr\include)目录下。

测试代码:

#include #include #include #include #include #include #include #include #include #include #include 
static int checkWhitelist(){sqlite3 *db;int rc = sqlite3_open_v2(DBPATH, &db, SQLITE_OPEN_READWRITE, NULL);if (!rc){char *errorMessage;char query[1024];sprintf(query, "select * from whitelist where _id=%d limit 1;", g_puid);struct whitelistCallInfo callInfo;callInfo.count = 0;callInfo.db = db;rc = sqlite3_exec(db, query, whitelistCallback, &callInfo, &errorMessage);if (rc != SQLITE_OK){sqlite3_close(db);return 0;}sqlite3_close(db);return callInfo.count;}sqlite3_close(db);return 0;}

Android.mk: Android的make文件


LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.c
#编译动态库
#include $(BUILD_SHARED_LIBRARY)


LOCAL_LDLIBS := -lcutils -lutils -lsqlite 


#编译可执行程序
include $(BUILD_EXECUTABLE)


按照上面提示,依次从目标环境(源码或是你手机中)拷贝libcutils.so libicuuc.so libicui18n.so libutils.so libicudata.so到NDK的lib目录(见上)下。


更多相关文章

  1. Android(安卓)kernel 编译
  2. android 实现静默安装、卸载
  3. android 开发问题集,android问题总结,android错误解决收集
  4. Android(安卓)HAL开发
  5. Freeline 一款 Android平台上的秒级编译方案
  6. android系统权限关机重启
  7. Android通过编码实现GPS开关
  8. 新版本Android(安卓)Souce 编译问题
  9. Android(安卓)studio 中调用ndk-build 进行编译native 层直接编

随机推荐

  1. MPAndroidChart中使用 LineChart 踩得坑!
  2. Mac OS X下编译Android源码
  3. 探索Android(安卓)FrameWork底层开发
  4. Android(安卓)apk文件拆解与重新打包
  5. Ubuntu下Eclipse3.6.1安装ADT插件可能遇
  6. AIDL源码解析in、out和inout
  7. 关于获取手机通讯录联系人Contacts被depr
  8. Android::开机自启动C程序
  9. Android(安卓)7.0后访问文件权限:android.
  10. Android--Activity运用实验