Latest SQLite binary for January 2015

Latest SQLite binary for January 2015

Well I went through quite a few threads to find an updated, decent sqlite binary. Didn‘t find any that met that criteria.

So I compiled one.

Here‘s SQLite 3.8.7.4 combined into a single source file (the amalgamation) for ARM v6 and v7.

These binaries are built with optimized armv6 and armv7 flags.

Should work on Android 2.x and up.

I have attached 2 versions to this thread, compressed and uncompressed. I had to change the extension to apk otherwise I can‘t upload it. Just remove the extension.

Just download and run the uncompressed file, whereas compressed you have to uncompress it first.

Here‘s 2 alternative download links:

Compressed:

armv6
http://d-h.st/CNlY
armv7
http://d-h.st/Tlg

Uncompressed:

armv6
http://d-h.st/6lCg
armv7
http://d-h.st/dpIw

* Update *
E:V:A alerted me to a problem with certain versions of android didn‘t like the dynamic linking. So now it is statically linked.

I now run 4 tests on the built binary.
1. I import the chinook test database using -init and dump it.
2. I open the already created sqlite database and dump it.
3. I vacuum the chinook database.
4. I reindex the chinook database.

Added 64bit file support, but it has not been fully tested.

Hopefully someone can do some tests with large five gigabyte data bases,
otherwise I‘ll get to it eventually.

Also, since I‘ve actually made changes to the sqlite code since the update in January, I‘ve created a github.
http://github.com/tech128/sqlite3

Attached Files

  sqlite3.armv6.apk (874.0 KB, 1014 views)
  sqlite3.armv6.7z (375.2 KB, 252 views)
  sqlite3.armv7.apk (878.0 KB, 2038 views)
  sqlite3.armv7.7z (376.9 KB, 880 views)

Q: Is this will work on other device ? my device is sony xperia C JB 4.2.2

A: Yes this will work on any android device that has android 2.0 or higher. 
So it will work fine on your sony xperia C JB 4.2.2

Q: Did someone test this on a Samsung?

I‘m asking because this binary is dynamically linked and thus dependent on libraries not being non-standard... 
If you want your sqlite3 to be device independent you have to make it statically linked.
You current version does not work on my 4.2.2.
(It runs, but crashes as soon as you specify a db file, because of unmatched .so files.)

It is a honor to have you post in my thread. Thank you for letting me know it does not work on your system.
I have read many of your threads, extremely informative. One day I hope to memorize all of what you have written.
I compiled sqlite3 dynamically because it is a little easier on the memory subsystem and has a smaller output filesize.
I tested it on several android 2.3 / 4.3 / 4.4 systems and they all seemed to work fine so I thought it would be ok.
Especially since all that is dynamically referenced is libc and libdl.
I have just compiled a static version but I need to test it before posting it.
I will update the op soon.

your sqlite3 can reindex, but it can not vaccum. u can re-check it

Thank you for letting me know about this issue.
I test sqlite before I release it, but there are no test suites for it, barring one which requires tcl,
which I have no desire to compile since there‘s no other use for it.
The current sqlite can probably only reliably work with databases up to 2 or 4 GB
Which usually isn‘t a problem since most sqlite databases are well under that amount.
I‘ve been trying to compile an updated sqlite with proper 64 bit file support.
Since 64 bit file support is a bit wonky on android, this has been a bit tough.
Also, I‘ve been rather busy since I last released the binary, so I haven‘t had much time to think about compiling in general.
I‘ll do my best to get a new binary out soon-ish.

Armv6 flags? So it‘s useless on Nexus 4/5 etc with armv7 CPUs? Can we find one which is optimised for high end devices?

No not useless, just less than optimal. Not really sure of the speedup, since I don‘t do benchmarks.
I try to optimize it as much as possible without breaking it x_X

I was initially planning to put out both armv6 and armv7 ports at the same time,
but then I realized most android utilities aren‘t compiled with proper 64bit file support.

So I‘ve been trying to figure that out first.
And also, most people don‘t use sqlite for anything earth-shattering anyway, mostly vacuum, reindex,

create database from sql statements, etc.

Oooooo just saw this while searching for sqlite performance enhancements. 
https://sqlite.org/src4/doc/trunk/www/design.wiki
Very nice.

I‘d also like to try to switch to musl as the standard library since alireza7991 has said it makes things smaller and faster.
Not sure how feasible that will end up for me though...
It doesn‘t look like sqlite can parallelized at all though. See here: 
http://blogs.perl.org/users/timm_mur...nd-writes.html
There is a fork/variant of sqlite called paralite that uses threading,
but I don‘t think it retains the same file format compatibility and it looks like it introduces some bugs.
Unfortunately real life stuff takes precedence so things will progress slower than I would like.
But at least I know there‘s lots to look forward to even just for sqlite lol.

It works: for user of my app in android 5.0 but for me too with android 4.4.4 OnePlus one and cyanogen.
I test to put your binaries in /system/xbin in my phone and it works.
One question: i believe your binaries works too to phones that have an android version
but have a version of sqlite3 that no correspond with android isn‘t it?

Again thanks for this fresh binary.

I have some issues with converting UNIX-time compared to built-in binary.
At example command:

Code:

sqlite3 <here_file> "select datetime(‘now‘,‘localtime‘);"

– Built-in: returns correct time with timezone offset (preferred, data ready for use).
– Your: returns UTC time without using phone‘s offset.

This causes problems with my use-case.
Same version (3.8.7.4) Windows EXE from official site returns correct time with timezone offset.

Please, can you comment this?
Maybe this is due wrong linked libs or something else?

UPD: ok, took binary from WhatsTasker

APK (nevermind), it have 3.8.8 version.
And it returns correct local time!
So something wrong in this compiled version.

If some one will have those issues, I attached that binary, it‘s Lollipop-compatible too.

sqlite3.zip (288.9 KB, 236 views)

Here‘s SQLite 3.8.7.4 combined into a single source file

Huge thanks for sharing!
This is only binary I found that include all needed for me:

1. Fresh – contains required new features
2. Standalone – not depends from system libsqlite.so
3. Lollipop compatible – no "PIE problem"

时间: 2024-10-07 08:00:07

Latest SQLite binary for January 2015的相关文章

matrix_2015_1 138 - ZOJ Monthly, January 2015

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3844 第一个,n个数,每次操作最大数和最小数都变成他们的差值,最后n个数相同时输出此时的值,暴力跑. 1 #include<cstdio> 2 int main(){ 3 int t,n,a[16]; 4 while(~scanf("%d",&t)){ 5 while(t--){ 6 scanf("%d",&n);

ZOJ Monthly, January 2015 (B、E、G、H)

B题: 先处理出已有卡牌,然后进行dfs,dfs有个很大的剪枝,就是当前位置如果字典序小于了,那么后面就不用继续放了,直接用组合数学进行计算即可,如果大于就不用考虑了,如果等于才继续往后搜,这样的话,搜等于只要在字典序相等的一条路上搜,时间可以接受 E题:模拟即可,不存在无解情况 G题:先全部数字GCD一遍,如果不为1,就是无解,如果为1,那么构造答案,其实只要拿第一个数字,可以其他每个数字做一次gcd,第一个数字就是1了,然后再拿第一个数字和后面数字做gcd,就全部都是1了,一共进行n - 2

SQLite commands and general usage

参考:https://www.pantz.org/software/sqlite/sqlite_commands_and_general_usage.html SQLite is an embedded open source relational database (db). It is very portable, easy to use, compact, efficient, and reliable. Being an embedded database it becomes part

Oracle Recommended Patches -- &quot;Oracle JavaVM Component Database PSU&quot; (OJVM PSU) Patches (文档 ID 1929745.1)

From: https://support.oracle.com What is "Oracle JavaVM Component Database PSU" ? Oracle JavaVM Component Database PSU is released as part of the Critical Patch Update program from October 2014 onwards.It consists of two separate patches: One fo

nignx部署django

操作系统:Linux wiki 2.6.32-131.0.15.el6.x86_64 nginx版本: nginx-1.5.7 uwsgi版本:uwsgi-2.0.8 大致流程参考:http://www.linuxyw.com/353.html (官方文档:http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html) 下面主要介绍安装过程中出现的几个问题 1. uwsgi安装中,由于openssl 源码升

Autodesk 2014 M&amp;E Devday is coming

年度的欧特克传媒娱乐业的开发者大会又将很快与小伙伴们见面了,我们会在拉斯维加斯,东京,上海,北京四个地方分别举办.相比往年,今年会晚一些,也让我们有更多的时间去准备.以下是英文的详细介绍,如果只关注中国的话,小伙伴们只要看红色字体标注部分就可以了,任何问题,可以留言或者邮件给我 [email protected] .. Autodesk Media and Entertainment DevDays December 2014 – January 2015 Come see us in acti

Simple drag and drop

In computer graphical user interfaces, drag-and-drop is the action of (or support for the action of) clicking on a virtual object and dragging it to a different location or onto another virtual object. In general, it can be used to invoke many kinds

Rust 1.0.0-alpha 即将释出

发行说明和参考资料: Version 1.0.0-alpha (January 2015) ---------------------------------- * ~2300 changes, numerous bugfixes * Highlights * The language itself is considered feature complete for 1.0, though there is a significant amount of cleanup and bugfixe

(转)The Road to TensorFlow

Stephen Smith's Blog All things Sage 300… The Road to TensorFlow – Part 7: Finally Some Code leave a comment » Introduction Well after a long journey through Linux, Python, Python Libraries, the Stock Market, an Introduction to Neural Networks and tr