HRFusion is a small Android app, that navigates on "HR" SQLite database.
- Researching POCO C++ Libraries on Android platform.
In spite of Android SDK provides built-in API for operating with SQLite, the aim of this app is an integration of POCO libs and using POCO's API to access to SQLite database (see "POCO C++ Libraries Android Platform Notes").
As a database, there's used a reflection of Oracle Database 'HR' sample schema ("hr.db" file provided in "assets" folder).
This one is produced by the utility "HRToSQLite".
- Android Studio 4.0
- SDK (Build Tools 35)
- NDK 21.2.6472646
- CMake (External Build) for C++ part
- HRFusion.so is built with:
- cpp flags - '-std=c++11 -frtti -fexceptions'
- stl type - 'c++_shared'
This project uses POCO LIBS 1.7.5 (Download | POCO C++ Libraries )
To make it buildable, do the next steps:
- copy POCO LIBS headers under directory 'app/src/main/cpp/include':
-- Poco
|-- Data
| -- SQLite
|-- Dynamic
| -- Util
|-- ASCIIEncoding.h
|-- AbstractCache.h
|-- AbstractDelegate.h
|-- ...
-
copy POCO libraries built for abi types 'armeabi', 'x86_64', etc. under directory 'app/src/main/jniLibs' respectively:
``` . |-- armeabi | |-- libPocoData.so | |-- libPocoDataSQLite.so | |-- libPocoDataSQLited.so | |-- libPocoDatad.so | |-- libPocoFoundation.so | |-- libPocoFoundationd.so | |-- libPocoJSON.so | |-- libPocoJSONd.so | |-- libPocoUtil.so | |-- libPocoUtild.so | |-- libPocoXML.so | |-- libPocoXMLd.so `-- x86_64 |-- libPocoData.so |-- libPocoDataSQLite.so |-- ... ```
- JUnit tests are provided for all jni-calls against to HRFusion.so;
- ReadHREntitiesFixture - the single fixture aggregates all test unit calls, to launch them in 'batch mode';