===setup=== * install [...] * ''android update sdk --no-ui'' ===on linux with emacs=== * general overview > http://gregorygrubbs.com/development/tips-on-android-development-using-emacs/ * install sdk + use it to install runtimes etc: http://developer.android.com/sdk/installing.html * useful but a bit out of date: http://riddell.us/AndroidWithEmacsOnUbuntu.html * (install everything to ~/opt and set up paths) setting up the hardware: * enable debugging on device * set permissions on usb device by creating /etc/udev/rules.d/51-android.rules (0bb4 is htc vendor): SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666" test it works with: adb devices creating a project (from http://developer.android.com/guide/tutorials/hello-world.html ): android create project \ --package com.android.helloandroid \ --activity HelloAndroid \ --target 2 \ --path /HelloAndroid Use "android list targets" to get the target number Load a file into emacs, M-X android-ant-install, and the package should appear in your apps list Sidestepping java with the NDK: http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/ Building ndk sources by putting the ndk directory on your path and running ndk-build Compiler flags are in Android.mk, debug options are set by the java project, add: android:debuggable="true" To the application properties in the manifest. Writing to the sdcard from the ndk - you can just use fopen("/sdcard/newfile.txt") but you need to remember to add: To the manefest. Debugging on emulator - in order to find the symbols first run: set solib-search-path /path/to/your/project/obj/local/armeabi Or, alternatively use addr2line to convert a crash address to the source location: adb logcat (... lots of stuff including stack trace ...) addr2line -e libfoo.so deadbeef