WEB开发网
开发学院手机开发Android 开发 在 Android 平台上应用 Berkeley DB 11gR2 SQL(dr... 阅读

在 Android 平台上应用 Berkeley DB 11gR2 SQL(drop-in模式)

 2010-04-04 06:21:00 来源:WEB开发网   
核心提示:$ ./android(如图)使用图形界面工具创建一个Android 2.1的设备BDBSQL,并点击”start”启动,新的设备第一次启动的时间会非常长,在 Android 平台上应用 Berkeley DB 11gR2 SQL(drop-in模式)(2),这是正常现象,等到Android界面出现,这样日志文件不会被

$ ./android

(如图)使用图形界面工具创建一个Android 2.1的设备BDBSQL,并点击”start”启动。新的设备第一次启动的时间会非常长,这是正常现象。等到Android界面出现,就说明我们的镜像编译基本没问题了。接下来我们进一步把SQLite库替换为BDB。

3. 编译BDB SQL

从http://www.oracle.com/technology/software/products/berkeley-db/index.html下载BDB 11gR2源文件(db-5.0.x.tar.gz),然后

$ cd $HOME/android/android_src/external/sqlite/dist

$ tar zxvf db-5.0.x.tar.gz

$ cp Android.mk Android.mk.bak

$ cp db-5.0.x/build_android/Android.mk .

编辑Android.mk,默认的BDB Log和Region文件大小总和可达到十几兆,因此我们有必要修改Android.mk来减小它(可能需要为Android.mk去掉只读属性)。修改第一处LOCAL_CFLAGS如下所示(相对于默认配置,我们删除了-DSQLITE_OMIT_TRUNCATE_OPTIMIZATION,新增了 -DSQLITE_DEFAULT_CACHE_SIZE=256 -DBDBSQL_MAX_LOCKS=1000 -DBDBSQL_MAX_LOCK_OBJECTS=1000):

LOCAL_CFLAGS += -Wall -DHAVE_USLEEP=1

-DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576

-DSQLITE_THREADSAFE=1 -DNDEBUG=1 -DSQLITE_TEMP_STORE=3

-DSQLITE_OS_UNIX=1

-D_HAVE_SQLITE_CONFIG_H -DSQLITE_THREAD_OVERRIDE_LOCK=-1

-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_BACKWARDS -Dfdatasync=fsync

-DSQLITE_DEFAULT_CACHE_SIZE=256

-DBDBSQL_MAX_LOCKS=1000

-DBDBSQL_MAX_LOCK_OBJECTS=1000

如果确定不会在多进程间共享数据库,还可以在上述LOCAL_CFLAGS中加入”-DBDBSQL_OMIT_SHARING”,这样日志文件不会被写入文件系统,进一步节省了设备空间。

编译系统镜像中的SQLite部分:

$ cd $HOME/android/android_src

$ . build/envsetup.sh

$ make clean-libsqlite

$ mmm -B external/sqlite/dist

$ make snod

编译好了,再来一次镜像替换:

$ cp $HOME/android/android_src/out/target/product/generic/*.img

上一页  1 2 3 4  下一页

Tags:Android 平台 应用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接