If you are developing an Android app and need the emulator to access Internet you can get the result in case of your network is under a proxy. The emulator interface doesn't have some GUI dialog allow to insert proxy params but there is a way to set these params by command line. This mean you have to manually launch the emulator instead of have it automatically started by the IDE. The command line format is the following:

emulator.exe @[emulator image name] -http-proxy http://[username]:[password]@[proxy IP]:[proxy port]

This example is valid under Windows, in case of Linux simply remove the .exe extension from emulator executable file name. Let's make some practical examples just for explain better the use. In this example we suppose to have an emulator android image called "Image test" (remember in case you have an emulator image name containing spaces you have to change it with the character '_'). We'll use as proxy IP the classic 192.168.0.1 and port 8080. As username we'll use 1234 and password 5678 (don't use it at home or in office ^_^). Using these data we'll have:

emulator.exe @Image_test -http-proxy http://1234:5678@192.168.0.1:8080

In case your proxy doesn't require authentication you simply have:

emulator.exe @Image_test -http-proxy http://192.168.0.1:8080

Launch the emulator using these command line will allow some app like standard browser (and then WebView component too) to correctly access Internet through the proxy in a transparent way. Hope this help.
Qt Creator recently introduced a new way for develop android application. Basically is now possible to select use Gradle instead of apache-ant for final APK creation. Gradle is going to be the new "standard" than the choice of Qt team look perfectly reasonable. However if you are developing in a network under a proxy you could experiment some problem using Gradle.


The linux static library format .a is basically only an archive of compiled object files. If you are developing a linux static library that use external functions coming from another static library you need to release both libraries (your library just developed and the second library you get functions from) for allow the final executable to compile correctly. However a more "elegant" and easy solution would be to "incorporate" the secondary library inside your library as result to distribute one single library containing all required object files for compile. This can be done by extracting all the object files from the secondary library and include inside your library. In our example we'll call MyLibrary.a the library we just developed and SecondaryLibrary.a the library we require function from. All the required command will be included inside a shell script we can call addlib.sh as follow:

#!/bin/sh

mkdir tmp
cd tmp

ar x ../SecondaryLibrary.a
ar r ../MyLibrary.a *

rm *
cd ..
rm -r tmp

As you can see the script create a temporary folder called tmp where extract all the object files from inside SecondaryLibrary.a and include all into the MyLibrary.a just compiled. At the end remove all object files and remove the temporary folder. This will allow MyLibrary.a to incorporate all the required objects for allow compilation distributing it standalone. Both SecondaryLibrary.a and MyLibrary.a need to be placed in the same position where the script file is executed. In case you use some IDE like, for example, Code::block you need to set the automatically execution of this script at the end of each compilation.
The latest revisions Qt framework allow to port application developed in C++ code to run in Android OS also. For standard app the Qt framework provide all the required features but in some case is necessary to interact with the system using native java code. For make such task Qt provide some specific objects able to allow a more easy work.

In case you are programming under Linux and have a binary file that want "import" inside your C/C++ code is there an useful linux utility tool called xxd able to make such conversion in a very easy way. This tool is usually installed by default in all major linux distributions. The use is very simple, if you have a binary file called, for example, MyFile.bin with length of 100 bytes and wan to convert in a C/C++ source code array you can simply type:

xxd -i MyFile.bin > MyFile.h

The source code array generated inside the header file will have a format like the following:

unsigned char MyFile[] = {
  0xXX, 0xXX, ....., 0xXX
};
unsigned int MyFile_len = 100;

Obviously 0xXX is the hexadecimal content of the binary file. Now you can import the header file just generated and use in your project.