Autore Topic: Tutorial per prima app con Android NDK.  (Letto 13234 volte)

Offline vicvondoom

  • Utente junior
  • **
  • Post: 71
  • Respect: +4
    • Mostra profilo
    • vicvondoom
  • Dispositivo Android:
    Sony XPeria U
  • Play Store ID:
    Orlando Davide
  • Sistema operativo:
    Windows 8
Tutorial per prima app con Android NDK.
« il: 24 Agosto 2010, 16:55:07 CEST »
0
Prerequisiti x windows = aver installato CygWin (www.cygwin.com)

Percorsi:
<provaNDK> = path del progetto Android che andiamo a creare.
<android_ndk_path> = path dell'Android NDK (che trovate qui Android NDK | Android Developers)
<java_jdk> = path del java software development kit (scaricare e installare il JDK Java da qui Java SE Downloads - Sun Developer Network (SDN))

Bene, partiamo!

1) Creare un nuovo progetto Android chiamato provaNDK
   Project name: provaNDK
   Application name: provaNDK
   Package name: com.doom.provandk
   Nome activity: frmMain
   Min SDK Version: 4

2) Nel frmMain mettere questo codice:

Codice: [Seleziona]
package com.doom.provandk;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class frmMain extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.v("provaNDK",new NativeLib().getHelloWorld());
    }
}

class NativeLib
{   
        public native String getHelloWorld();   
        static
        {       
                System.loadLibrary("helloworld");
        }
}

3) Andare con la linea di comando del dos in <provaNDK>/bin
4) lanciare "<java_jdk>\javah -jni com.doom.provandk.NativeLib" (attenzione al path di javah, potrebbe essere diverso!)

Adesso dovrebbe creato il file com_doom_provandk_NativeLib.h in <provaNDK>/bin

5) Creare cartella 'provaNDK' in <android_ndk_path>/sources
6) Metterci com_doom_provandk_NativeLib.h appena creato
7) Creare sempre lì il file doom.c col seguente codice:

Codice: [Seleziona]
#include "com_doom_provandk_NativeLib.h"
JNIEXPORT jstring JNICALL Java_com_doom_provandk_NativeLib_getHelloWorld
        (JNIEnv * env, jobject obj)
{
   return (*env)->NewStringUTF(env, "Ciao, neh?!");
}

8) Nella stessa dir creare un file chiamato Android.mk e scrivergli:

Codice: [Seleziona]
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := helloworld

LOCAL_SRC_FILES := doom.c

include $(BUILD_SHARED_LIBRARY)

9) Adesso andare nella cartella 'apps' in <android_ndk_path> (e se non c'è, la creo la 'apps'!) e creo una cartella provandk' in cui creo un file chiamato Application.mk, che contiene:

Codice: [Seleziona]
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES      := helloworld

10) Poi creo, sempre in apps le seguenti cartelle 'project/jni' e ci metto, in jni, i files doom.c, Android.mk e
com_doom_testnkd2_NativeLib.h

11) Ora, da linea di comando, torno sul livello di <android ndk path> e lancio:

Codice: [Seleziona]
make APP=testndk2

Dovrebbe scrivere qualcosa tipo:

Codice: [Seleziona]
Android NDK: Building for application 'provandk'
Compile thumb  : helloworld <= apps/provandk/project/jni/doom.c
SharedLibrary  : libhelloworld.so
Install        : libhelloworld.so => apps/provandk/project/libs/armeabi

12) E' stato creato in <android_ndk_path>/apps/project/libs/armeabi il file libhelloworld.so che è da copiare nel progetto Eclipse (copiare quindi la cartella libs nel progeto eclipse).
13) Fare un refresh al progetto e dovrebbe apparire la cartella.
14) Ora lanciare il progetto e voilà! Nel logCat apparirà la fatidica 'Ciao, neh?!' :)
« Ultima modifica: 24 Agosto 2010, 16:59:04 CEST da vicvondoom »
"Non c'è cattivo più cattivo di un buono quando diventa cattivo!" Bud Spencer in 'Chi trova un amico trova un tesoro'.

Offline areo

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus one
Re:Tutorial per prima app con Android NDK.
« Risposta #1 il: 17 Novembre 2010, 08:05:34 CET »
0
come nell'altro thread: grazie 1000 :D

Offline theKuston

  • Nuovo arrivato
  • *
  • Post: 48
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Play Store ID:
    K-soft
  • Sistema operativo:
    windows 8.1, Ubuntu 14
Re:Tutorial per prima app con Android NDK.
« Risposta #2 il: 01 Marzo 2015, 15:33:29 CET »
0
Grazie 1000000 del tutorial!!! :D :D :D
Tutte le mie applicazioni sul play store:
https://play.google.com/store/apps/developer?id=K-soft

Offline MRK89

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Re:Tutorial per prima app con Android NDK.
« Risposta #3 il: 25 Giugno 2015, 17:06:47 CEST »
0

10) Poi creo, sempre in apps le seguenti cartelle 'project/jni' e ci metto, in jni, i files doom.c, Android.mk e
com_doom_testnkd2_NativeLib.h

11) Ora, da linea di comando, torno sul livello di <android ndk path> e lancio:

Codice: [Seleziona]
make APP=testndk2


ciao, non so se leggerai mai questo messaggio e ti ricorderai dell'argomento, comunque quando dici di copiare i file  "doom.c, Android.mk e
com_doom_testnkd2_NativeLib.h"  in realtà quelli creati precedentemente erano "doom.c, Android.mk e
com_doom_provandk_NativeLib.h"  non hai mai parlato di  com_doom_testnkd2_NativeLib.h .
Poi dici di andare in <android ndk path> per fare il make, ma in realtà ad oggi l'unico applicativo make si trova nella cartella <android ndk path>\prebuilt\windows-x86_64\bin  ma penso che questo path sia cambiato con le versioni... e comunque non mi esegue il make !!!

Offline Damiani Programmer

Re:Tutorial per prima app con Android NDK.
« Risposta #4 il: 09 Ottobre 2015, 13:58:51 CEST »
0
Grazie per il tutorial !  :D
DAMIANI PROGRAMMER: TANTE APPLICAZIONI PER ANDROID!

www.facebook.com/damianiprogrammer