Native Android for Windows Developers
Upcoming SlideShare
Loading in...5

Native Android for Windows Developers






Total Views
Views on SlideShare
Embed Views



2 Embeds 11 8 3



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Native Android for Windows Developers Native Android for Windows Developers Presentation Transcript

  • Native AndroidforWindows DevelopersYossi Cohen
  • INSTALLATIONSInstall Eclipse + CDTInstall SDKInstall ADTInstall USB DriverInstall NDKInstall Cygwin ….
  • Eclipse Installation• Download & Install Eclipse ▫ Select the classic version from ▫ CDT for C/C++ development is recommended  Select “Install New Software” from Eclipse’ Help menu  Select available software sites  Check CDT  Install CDT components
  • SDK Installation• Download & Install SDK (select windows option) ▫• Install the ADT (Android Developer Tools) for Eclipse ▫ Instructions: ▫ ▫ Press Add in available software menu ▫ Add ADT with the link below 4
  • USB Driver / NDK Installations• Install USB Driver ▫ If you don’t have a nexus phone download driver from vendor. Instructions:• Install NDK ▫• Preferably do all Installations in D:Android 5
  • Cygwin Installation• Goo to and download setup• Install Cygwin.• Select default install options• After installation, add the following Dirs to Cygwin Path: ▫ C:Androidandroid-sdktools ▫ C:Androidandroid-ndk-r7buildtools 6
  • Running a native sample app• In Eclipse, Select: ▫ File->New->Project->Android Project• Select “Create Project From Existing Source”• change the directory to the Installed NDK samples:• D:Androidandroid-ndk- r7samplesHello-Jni• Select target and finish
  • Compile & Run• Compile the Java application• Run it on your phone target• Crash?• Open Cygwin window• Compile the native code in: D:Androidandroid-ndk-r7samplesHello-Jni JNI using ndk-build command• Compile the Java application• Run it on your target 9
  • Java Code Review• Java part of the application is simple:• On create, the application prints to the screen a string it receives from stringFromJNI() declared as a Native function• Native library hello-jni is loaded 11
  • Java to C calling convention/* sample method where the Java call passed no parameters */void Java_ClassName_MethodName (JNIEnv *env, jobject obj){/* do something */ }/* another sample method with two parameters passed, returninga double */jdouble Java_ClassName_MethodName ( JNIEnv* env, jobject obj, jdouble x, jdouble y){ return x + y; }• Note: Android Java identifies the native functions according to their C type signature. If the call is for CPP functions, the Java program will not recognize them. The solution to this problem is to use extern “C” { } around the CPP functions
  • Make Files• Android native applications must could have two make files: ▫ – details the source header and libraries used to create the application (library) ▫ – details the target platform, processor (ARM 7) and API level (API 10). The file is not mandatory
  • SampleExample, the HelloJNI NDK sample make FileLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.cinclude $(BUILD_SHARED_LIBRARY)
  • Review• LOCAL_PATH := $(call my-dir) ▫ first understand where we are since include paths are usually RELATIVE to our current location. This must be the first command in the mk file• CLEAR_VARS - clears special GNU Makefile LOCAL_XXX variables like LOCAL_SRC_FILES• LOCAL_MODULE := hello-jni The LOCAL_MODULE variable must be defined to identify each module you describe in your The name must be *unique* without spaces.
  • Review• The hello-jni sample does not include file.• can define the target platform as 9 (Android 2.2) APP_PLATFORM := android-9• Application file can also define the processor version:# Build both ARMv5TE and ARMv7-A machine code.APP_ABI := armeabi armeabi-v7a
  • Refrences• Review of Android Make file• Native android development• Cygwin Install for Android
  • DSP-IP Contact informationFor courses & programming services contactYossi