Native AndroidforWindows DevelopersYossi Cohen
INSTALLATIONSInstall Eclipse + CDTInstall SDKInstall ADTInstall USB DriverInstall NDKInstall Cygwin ….
Eclipse Installation• Download & Install Eclipse  ▫ Select the classic version from    http://www.eclipse.org/downloads/  ...
SDK Installation• Download & Install SDK (select windows option)  ▫ http://developer.android.com/sdk/index.html• Install t...
USB Driver / NDK Installations• Install USB Driver ▫ If you don’t have a nexus phone download driver   from vendor. Instru...
Cygwin Installation•   Goo to http://cygwin.com/ and download setup•   Install Cygwin.•   Select default install options• ...
THE FIRST NDK SAMPLE
Running a native sample app• In Eclipse, Select:  ▫ File->New->Project->Android    Project• Select “Create Project From  E...
Compile & Run• Compile the Java application• Run it on your phone target• Crash?• Open Cygwin window• Compile the native c...
CODE REVIEW              10
Java Code Review• Java part of the application is simple:• On create, the application prints to the screen a  string it re...
Java to C calling convention/* sample method where the Java call passed no parameters */void Java_ClassName_MethodName (JN...
Make Files• Android native applications must could have two  make files: ▫ Android.mk – details the source header and   li...
Android.mk SampleExample, the HelloJNI NDK sample make FileLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE  ...
Android.mk Review• LOCAL_PATH := $(call my-dir) ▫ first understand where we are since include paths   are usually RELATIVE...
Application.mk Review• The hello-jni sample does not include  application.mk file.• Application.mk can define the target p...
Refrences• Review of Android Make file• Native android development• Cygwin Install for Android
DSP-IP Contact informationFor courses & programming services contactYossi Cohenyossi@dsp-ip.com+972-545-313092
Upcoming SlideShare
Loading in...5
×

Native Android for Windows Developers

2,367

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,367
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
44
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Native Android for Windows Developers"

  1. 1. Native AndroidforWindows DevelopersYossi Cohen
  2. 2. INSTALLATIONSInstall Eclipse + CDTInstall SDKInstall ADTInstall USB DriverInstall NDKInstall Cygwin ….
  3. 3. Eclipse Installation• Download & Install Eclipse ▫ Select the classic version from http://www.eclipse.org/downloads/ ▫ CDT for C/C++ development is recommended  Select “Install New Software” from Eclipse’ Help menu  Select available software sites  Check CDT  Install CDT components
  4. 4. SDK Installation• Download & Install SDK (select windows option) ▫ http://developer.android.com/sdk/index.html• Install the ADT (Android Developer Tools) for Eclipse ▫ Instructions: ▫ http://developer.android.com/sdk/eclipse-adt.html#installing ▫ Press Add in available software menu ▫ Add ADT with the link below 4
  5. 5. USB Driver / NDK Installations• Install USB Driver ▫ If you don’t have a nexus phone download driver from vendor. Instructions: http://developer.android.com/sdk/oem-usb.html#InstallingDriver• Install NDK ▫ http://developer.android.com/sdk/ndk/index.html• Preferably do all Installations in D:Android 5
  6. 6. Cygwin Installation• Goo to http://cygwin.com/ 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
  7. 7. THE FIRST NDK SAMPLE
  8. 8. 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
  9. 9. 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
  10. 10. CODE REVIEW 10
  11. 11. 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
  12. 12. 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
  13. 13. Make Files• Android native applications must could have two make files: ▫ Android.mk – details the source header and libraries used to create the application (library) ▫ Application.mk – details the target platform, processor (ARM 7) and API level (API 10). The application.mk file is not mandatory
  14. 14. Android.mk 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)
  15. 15. Android.mk 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 Android.mk. The name must be *unique* without spaces.
  16. 16. Application.mk Review• The hello-jni sample does not include application.mk file.• Application.mk 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
  17. 17. Refrences• Review of Android Make file• Native android development• Cygwin Install for Android
  18. 18. DSP-IP Contact informationFor courses & programming services contactYossi Cohenyossi@dsp-ip.com+972-545-313092
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×