18
Native Android for Windows Developers Yossi Cohen

Native Android for Windows Developers

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Native Android for Windows Developers

Native Android for Windows Developers

Yossi Cohen

Page 2: Native Android for Windows Developers

INSTALLATIONS

Install Eclipse + CDTInstall SDKInstall ADTInstall USB DriverInstall NDKInstall Cygwin ….

Page 3: Native Android for Windows Developers

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

Page 4: Native Android for Windows Developers

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#install

ing▫ Press Add in available software menu

▫ Add ADT with the link below

4

Page 5: Native Android for Windows Developers

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

Page 6: Native Android for Windows Developers

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:\Android\android-sdk\tools▫C:\Android\android-ndk-r7\build\tools

6

Page 7: Native Android for Windows Developers

THE FIRST NDK SAMPLE

Page 8: Native Android for Windows Developers

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:\Android\android-ndk-r7\samples\Hello-Jni

• Select target and finish

Page 9: Native Android for Windows Developers

Compile & Run•Compile the Java application•Run it on your phone target•Crash?•Open Cygwin window•Compile the native code in: D:\Android\

android-ndk-r7\samples\Hello-Jni\JNI using ndk-build command

•Compile the Java application•Run it on your target

9

Page 10: Native Android for Windows Developers

CODE REVIEW

10

Page 11: Native Android for Windows Developers

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 loaded11

Page 12: Native Android for Windows Developers

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,

returning a 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 useextern “C” { } around the CPP functions

Page 13: Native Android for Windows Developers

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

Page 14: Native Android for Windows Developers

Android.mk SampleExample, the HelloJNI NDK sample make File

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)

Page 15: Native Android for Windows Developers

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.

Page 16: Native Android for Windows Developers

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)

•Application file can also define the processor version:

# Build both ARMv5TE and ARMv7-A machine code.

APP_ABI := armeabi armeabi-v7a

APP_PLATFORM := android-9

Page 17: Native Android for Windows Developers

Refrences•Review of Android Make file•Native android development •Cygwin Install for Android

Page 18: Native Android for Windows Developers

DSP-IP Contact informationFor courses & programming services For courses & programming services contactcontactYossi CohenYossi [email protected] [email protected] +972-545-313092+972-545-313092