Top Banner
Native Android for Windows Developers Yossi Cohen
18

Native Android for Windows Developers

Jan 15, 2015

Download

Technology

Yossi Cohen

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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