1, download header file
the latest Android uses the Bluedroid Bluetooth library. The research Androhid uses the BlueZ Bluetooth library. To BlueZ downloaded a, inside the directory structure and files are different. Search for half a day, search the Android BlueZ.
git clone Https://android.googlesource.com/platform/external/bluetooth/bluez
2, copy to NDK
Copy the downloaded Bluez\lib\bluetooth directory to the NDK directory android-ndk-r10d\platforms\android-21\arch-xxx\usr\include\.
6 directories are copied, or not make up the past, Theseus pit.
Also to copy the Android\src\system\core\include\cutils directory into the NDK directory, the same as above, 6 will be copied.
In Build.gradle, the NDK section adds the filter for the target schema
NDK {
ModuleName "Nativebt"
"log" ,  " z " ,  > (???)
abifilters " Armeabi " " armeabi-v7a " ", "style= font-size:16px," "> }
Span style= "font-size:16px" > 
The compiled directory is left with two Armeabi, armeabi-v7a
There is only one arch-arm for the Include directory used in the NDK.
Compiled by.
The next step is to link the libbluetooth.so library, alas, looking at the sky heaved, where I go to find a. So library!
Well, the BlueZ source download down a look, so-called libbluetooth.so only 4 source files. Simply do not find, will be 4 source files piece copy to the project, compile together, too!
Bluetooth.c
Hci.c
Sdp.c
Uuid.c
Android Studio Link Bluetooth library