加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ndk下使用sqlite

发布时间:2020-12-12 19:49:41 所属栏目:百科 来源:网络整理
导读:尝试环境: Android2.2(源码) SDK android-ndk-r7 尝试在NDK下面使用C语言做Android的SQLite3数据库存储功能。做了如下尝试: 在Android的源代码中找到sqlite3.h和libsqlite.so拷贝到NDK的lib(D:androidandroid-ndk-r7-linuxplatformsandroid-3arch-

尝试环境:

  Android2.2(源码) SDK

  android-ndk-r7

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

在Android的源代码中找到sqlite3.h和libsqlite.so拷贝到NDK的lib(D:androidandroid-ndk-r7-linuxplatformsandroid-3arch-armusrlib)和include(D:androidandroid-ndk-r7-linuxplatformsandroid-3arch-armusrinclude)目录下。

测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <sys/stat.h>


#include <unistd.h>
#include <time.h>


#include <pwd.h>


#include <sqlite3.h>
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目录(见上)下。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读