`
java-mans
  • 浏览: 11415993 次
文章分类
社区版块
存档分类
最新评论

JNI应用程序开发实例1

 
阅读更多
文件1:
com\teleca\robin\HelloActivity.java
package com.teleca.robin;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

import com.teleca.robin.R;;
public class HelloActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView=(TextView)findViewById(R.id.textView1);
textView.setText(getStringFromJni());
}
native String getStringFromJni();
/* this is used to load the 'hello-jni' library on application
* startup. The library has already been unpacked into
* /data/data/com.example.HelloJni/lib/libhello-jni.so at
* installation time by the package manager.
*/
static {
System.loadLibrary("hello-jni");
}
}
文件2
jni\hello-jni.c
*/
#include <string.h>
#include<jni.h>

/* This is a trivial JNI example where we use a native method
* to return a new VM String. See the corresponding Java source
* file located at:
*
* apps/samples/hello-jni/project/src/com/example/HelloJni/HelloJni.java
*/
jstring
Java_com_teleca_robin_hellojni_HelloActivity_getStringFromJni( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello robin,this world is from JNI !");
}
注意:该jni文件要为于jni目录下。
文件3
jni\Android.mk
# 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 := hello-jni
LOCAL_SRC_FILES := hello-jni.c

include $(BUILD_SHARED_LIBRARY)
注意1LOCAL_MODULE是你要生成的so档案文件名。
注意2LOCAL_SRC_FILES为你要编译的jni代码文件,文件之间用分号";"隔开。
文件4
res\values\strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloActivity!</string>
<string name="app_name">JiniHello</string>
</resources>
文件5
res\layout\main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textView0"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
文件6:
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.teleca.robin"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
<uses-sdk android:minSdkVersion="7" />

</manifest>
分享到:
评论

相关推荐

    Android应用程序使用JNI调用驱动程序

    基于老罗的《Android内核源代码情景分析》第二章freg实例,使用NDK编译jni层从而调用驱动程序,能大大缩短项目开发周期。

    JNI使用实例

    一个JNI入门的使用实例 android 的应用程序(Dalvik VM)中使用JNI(Java Native Interface)调用C/C++开发的共享库

    android ndk开发步骤和实例

    分步骤描述了android jni如实开发。

    h_JAVA 2应用编程150例.rar

    实例1 布局管理 2 实例2 设计软件启动界面 9 实例3 实现多色窗口 11 实例4 切分窗口 13 实例5 丰富多彩的按钮 15 实例6 在窗口中显示背景图 16 实例7 在窗体中绘制图形 18 实例8 利用JNI实现窗口特效 20 实例9 文件...

    java应用软件程序设计

    这里边包括:第1章 Java图形用户界面编程 1 实例1 布局管理 2 实例2 设计软件启动界面 9 实例3 实现多色窗口 11 实例4 切分窗口 13 实例5 丰富多彩的按钮 15 实例6 在窗口中显示背景图 16 实例...

    《Android应用开发揭秘》附带光盘代码.

     1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和  配置  2.2.1 安装JDK和...

    android 完全中文版 开发应用详解

    目录: 结构如下,非常详细 第1章 android系统概述 1 1.1 基础知识 1 1.1.1 android开发系统的...15.2 android应用开发实例 381 15.2.1 gui依赖类的程序 382 15.2.2 单独模块类程序 387 15.3 android的设计理念 393

    《Android应用开发揭秘》源码

     1.1.3 Android应用程序框架  1.2 OMS介绍  1.2.1 OPhone介绍  1.2.2 Widget介绍  1.3 小结  第2章 Android开发环境搭建  2.1 Android开发准备工作  2.2 开发包及其工具的安装和配置  2.2.1 安装JDK和配置...

    JNI技术手册 c/c++调用java

    三、 嵌入式开发应用(JNI小例子) 20 1、 新增一个基础类 22 2、 定义新类继承基础类 23 3、 编写调用类 23 4、 新增两个本地方法 24 5、 修改 RunMain 类 25 6、 新增一个方法处理java对象 26 7、 新增一个方法处理...

    Android 初学中阶高阶书籍_集合打包2

    巧,android_jni操作指南,Android_NDK开发实例,Android_RIL层剖析(官方翻译),Android2.2+API+中文文档系列,Android的 Message机制(简单小结). Android的主题和风格介绍,Android开发环境搭建,Android内存泄露调试,...

    Android 初学中阶高阶书籍_集合打包3

    巧,android_jni操作指南,Android_NDK开发实例,Android_RIL层剖析(官方翻译),Android2.2+API+中文文档系列,Android的 Message机制(简单小结). Android的主题和风格介绍,Android开发环境搭建,Android内存泄露调试,...

    Android应用开发揭秘pdf高清版

    1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 Android开发准备工作 2.2 开发包及其工具的安装和 配置 2.2.1 安装JDK和配置Java开发 环境 ...

    《Android系统源代码情景分析》

    1.5 开发第一个Android应用程序 1.6 单独编译和打包Android应用程序模块 1.6.1 导入单独编译模块的mmm命令 1.6.2 单独编译Android应用程序模块 1.6.3 重新打包Android系统镜像文件 第2章 硬件抽象层 ...

    《Java编程技巧典型案例解析》随书光盘

    实例27 利用JNI实现企业Java程序与传统应用程序的集成 实例35 Java Servlet驱动SQLServer中的数据库 实例37 Java对象系列化技术在分布式数据库中的应用 实例38 基于URL的Webs服务器数据访问 实例42 Matlab...

    Android底层开发技术实战详解--内核、移植和驱动.(电子工业.王振丽).part1

    第1章 Android底层开发基础 1 1.1 什么是驱动 1 1.1.1 驱动程序的魅力 1 1.1.2 电脑中的驱动 2 1.1.3 手机中的驱动程序 2 1.2 开源还是不开源的问题 3 1.2.1 雾里看花的开源 3 ...

    Android系统源代码情景分析-罗升阳-源码

    1.5 开发第一个Android应用程序 1.6 单独编译和打包Android应用程序模块 1.6.1 导入单独编译模块的mmm命令 1.6.2 单独编译Android应用程序模块 1.6.3 重新打包Android系统镜像文件 第2章 硬件抽象层 2.1 ...

    android系统原理及开发要点详解

     本书适应广大的读者群,力求在Android的系统移植、应用程序开发、系统框架改进方面给读者全面的支持。不同的读者在学习本书时,应该使用不同的方法。  Android初级开发者:在本书指引下阅读代码,搭建系统开发...

Global site tag (gtag.js) - Google Analytics