|
2 | 2 |
|
3 | 3 | All notable changes to the AI MultiBarcode Capture Application are documented in this file. |
4 | 4 |
|
| 5 | +### Version 1.36 - ⚡ **Performance & Android 15+ Compatibility** |
| 6 | + |
| 7 | +**High-performance native image processing with NDK/JNI and Android 15+ 16KB page size support.** |
| 8 | + |
| 9 | +#### ⚡ **Native NDK Performance Optimization:** |
| 10 | + |
| 11 | +• **JNI-Based Image Cropping**: Native C++ implementation for capture zone image processing |
| 12 | + - **High-Performance YUV to RGB Conversion**: Optimized native code using integer math with fixed-point arithmetic (BT.601 coefficients scaled by 1024) |
| 13 | + - **Direct Bitmap Writing**: Native code writes directly to Android Bitmap using `AndroidBitmap_lockPixels()` for zero-copy operation |
| 14 | + - **Automatic Fallback**: Graceful Java implementation fallback when native library is unavailable |
| 15 | + - **BT.601 Color Space**: Proper YUV to RGB conversion using standard broadcast coefficients |
| 16 | + |
| 17 | +• **Performance Benefits**: |
| 18 | + - Significantly faster capture zone cropping compared to pure Java implementation |
| 19 | + - Reduced CPU usage during barcode scanning with capture zone enabled |
| 20 | + - Lower memory allocation overhead through direct buffer processing |
| 21 | + - Optimized for real-time barcode detection workflows |
| 22 | + |
| 23 | +#### 📱 **Android 15+ 16KB Page Size Support:** |
| 24 | + |
| 25 | +• **Future-Proof Compatibility**: Native library built with 16KB page size alignment for Android 15+ devices |
| 26 | + - **`-Wl,-z,max-page-size=16384`**: Linker flag ensures compatibility with devices using 16KB memory pages |
| 27 | + - **Seamless Operation**: Works transparently on both traditional 4KB and new 16KB page size devices |
| 28 | + - **No Runtime Configuration Required**: Compatibility is built into the native library at compile time |
| 29 | + |
| 30 | +#### 🔧 **Technical Implementation:** |
| 31 | + |
| 32 | +• **Native Library (`libyuvprocessor.so`)**: |
| 33 | + - `cropYuvToBitmapNative()`: Direct YUV420 to Bitmap conversion with cropping |
| 34 | + - `cropYuvToRgbNative()`: YUV420 to RGB pixel array conversion with cropping |
| 35 | + - ARM NEON SIMD optimization on 32-bit devices (`-mfpu=neon` for armeabi-v7a) |
| 36 | + - Aggressive compiler optimizations: `-O3 -ffast-math` for maximum performance |
| 37 | + |
| 38 | +• **Build Configuration**: |
| 39 | + - CMake-based native build fully integrated with Gradle build system |
| 40 | + - Multi-ABI support: arm64-v8a, armeabi-v7a, x86, x86_64 |
| 41 | + - Automatic native library bundling in APK |
| 42 | + |
| 43 | +• **Java Integration**: |
| 44 | + - `NativeYuvProcessor.java`: JNI wrapper class with static library loading |
| 45 | + - `isAvailable()`: Runtime check for native library availability |
| 46 | + - Transparent fallback to Java implementation in `BarcodeAnalyzer.java` |
| 47 | + |
| 48 | +#### 💡 **Benefits:** |
| 49 | + |
| 50 | +• **Faster Capture Zone Processing**: Native code provides significant speedup for capture zone image cropping |
| 51 | +• **Android 15+ Ready**: Application prepared for upcoming Android devices with 16KB page sizes |
| 52 | +• **Battery Efficiency**: Reduced CPU usage extends battery life during extended scanning sessions |
| 53 | +• **Consistent Performance**: Reliable operation across diverse device hardware configurations |
| 54 | +• **Enterprise Scalability**: Improved performance supports high-volume barcode capture workflows |
| 55 | + |
| 56 | +--- |
| 57 | + |
5 | 58 | ### Version 1.35 - 🎨 **Theme System & Custom Typography** |
6 | 59 |
|
7 | 60 | **Comprehensive visual customization with dual theme support and Zebra brand fonts for both Android app and web interface.** |
|
0 commit comments