Java Programming: JNA vs. JNI on Windows

Some developers used JNA to call native C/C++ interfaces of Dynamsoft Barcode Reader in Java program. The app ran slowly and sometimes crashed. Based on the use case, I created a simple project for building JNA and JNI on Windows. The sample does not only show how to invoke native code but also share how to check the Java thread stack size and solve the stack overflow issue on Windows.

Read more

How to Package JNI Shared Library into Jar File

The article is not about how to create Java native methods invoking C/C++ APIs. It aims to help developers to build a jar package containing JNI shared library, made with Dynamsoft Barcode Reader, for Windows, Linux, and macOS from scratch. I will demonstrate how to create JNI shared libraries with CMake, as well as how to package class files and shared libraries into jar files with Eclipse and Maven.

Read more

How to Use Multiprocessing to Optimize Python Barcode Reader

Previously, I demonstrated how to use OpenCV and Dynamsoft Barcode SDK to build a Python barcode reader. There’s one problem that when barcode decoding takes a long time, the webcam video didn’t play smoothly. I also tried multithread but failed to tackle the issue either due to the Python GIL(Global Interpreter Lock). Now I’m inspired by multiprocessing which is the recommended way to break through the bottleneck.

Read more

Why You Should Use A Commercial Barcode SDK for Business

ZXing is probably the most popular open source barcode SDK in the world. The library is written in Java and now has been ported to C++, .NET, Python, Objective-C, PHP and some other programming languages. Because ZXing is free, many developers would like to build barcode scanning apps with it. However, it is not competent for complicated business cases especially for images with multiple barcodes. In this article, I will show how to create a .NET barcode reader step by step and compare the performance difference between ZXing.Net and Dynamsoft Barcode Reader.

Read more

How to Package and Distribute Python Barcode SDK to PyPi

Previously, I wrote an article sharing how to build Python barcode extension using C/C++ with Dynamsoft Barcode Reader SDK. If Python developers want to use the extension, they have to make it by themselves. It is a little bit inconvenient. A better way is to package the extension and distribute it to PyPi. Then developers could directly install the extension using pip commands.

Read more