• 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
  • 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
首页 » 注意事项 » androidc调用java(学习Android需要掌握Java的哪些知识?)

androidc调用java(学习Android需要掌握Java的哪些知识?)

分类:注意事项 日期:2022-08-23 13:30 浏览:5 次

1.学习Android需要掌握Java的哪些知识?

学习Android需要掌握Java的知识

一、Java开发需要掌握的基本知识

1、Java分为3个版本,对着企业级应用的J2EE,针对嵌入式设备的J2ME,以及普通的J2SE。如果选择不同的方向,就需要掌握不同的技术。

1.1、桌面应用程序:用JavaSE就够了

1.2、项目开发:JavaEE(J2EE)

1.2.1 JavaEE

1.2.2 软件工程

1.2.3 熟练的java编程技术(JAVA,JSP,JAVABEAN,JAVA SERVLET,XML),

1.2.4 大型数据库编程经验,熟悉基于Oralce,DB2,SqlServer的应用的开发

1.3、J2ME

2、通用的知识需要掌握,比如Java的基本语法,Eclipse,一些简单的设计模式等。

3、网站开发:需要html+CSS+javascript,XML等许多知识。

二、Android应用开发需要掌握的基本知识

Java+sqlite +eclipse +android sdk +模拟器或者android手机

三、Mtk Android平台开发需要掌握的基本知识

1.Java /c /c++ 开发语言知识(底层 +中间层 +上层应用层),Java部分知识参看《Java开发指南2》。

2.Google Android 平台在Java基础上封装的 接口、类及相关Android 平台的相应知识,参看《Android

平台开发之旅》。

3.MTK的release 文档(MTK对Android平台做了一次封装,包括编译、项目组成、驱动集成),参看Mtk release的各平台的code

&doc &tools。

4.如果还需要开发应用部分代码,要求=上述二中所描述,参看android SDK,《hello,android》。

5.如果还需要开发驱动,需要学习 Linux操作系统、Mtk封装的关于驱动部分各平台的code &doc &tools。

2.VC调用JAVA方法的一个注意问题是什么?

随然这个问题可能很多人都没有遇到过,但遇到过的朋友相信和我一样,都经过了一断时间的问题查找才解决,为了减少这样的问题给你带来烦恼,在此我写下此文,希望对大家有所帮助。

你是否在创建JVM是老返回-1,即JNI_ERR;总么检查程序都没有发现任可问题,编译也不会出错。 动态链接库文件“jvm。

dll”已经放到了程序所在目录了,其实问题就出在这里,本来一般的dll文件只要把它放到执行程序目录下就可以正常调用了,但jvm。dll却有所不一样,它还需要调用相对目录下的其它文件,所以你不能单独把jvm。

dll拷贝到exe所在的目录;这样虽然编译均不会报错,但执行是却怎么也创建不了JVM。 正确的做法是,不要把jvm。

dll拷贝到exe所在的目录,而是把“C:\jdk1。5。

0_03\jre\bin\client”(按具体的JDK安装目录和版本进行设置)设到环境变量PATH中,这样问题就可以立即得到解决。

调用,注意事项,androidc,java

3.Java的本地调用注意有哪些呢?

ava的本地调用jni。

调用c为例。在Windows下调用。

dll文件;在Linux下调用。so文件。

1 Java部分:写一个Java调用的方法。 注意:动态库的名字的写法: Windows环境: loadLibrary("libname"); 注意调用的时候要用全名,扩展名可以不写。

Linux环境: loadLibrary("name"); 注意调用的时候不要用全名,要去掉前面的lib和后面的扩展名。 编译Java文件。

然后用Javah 生成。h文件给c程序用。

注意:如果Java文件又包的话,生成的。h是不一样的。

。h中的函数名会带上包名。

例如:cn/common/testlib。Java,生成的。

h中的函数名前面会是:cn_common_testlib。如果没有包,生成的。

h中的函数名就没有cn_common_ 2 写好c程序,编译生成。dll或。

so vc可以直接生成,或用命令行加参数的方法生成。 3 。

dll和。so放置的位置:libname。

dll/libname。so Windows环境: loadLibrary("libname"); 注意调用的时候要用全名,扩展名可以不写。

在环境变量设置PATH=%libname。dll的位置%,这样Java即可找到自己定义的库了。

Linux环境: loadLibrary("name"); 注意调用的时候不要用全名,要去掉前面的lib和后面的扩展名。 在环境变量设置:修改/etc下的profile文件加入这两句: LD_LIBRARY_PATH=libname。

so的位置 export LD_LIBRARY_PATH 或者直接放在%Java_HOME%/jre/lib/i386/下面。

4.如何通过JNI实现Java和C++的相互调用?

一、从Java调用C++的DLL 1。

创建Java文件 创建名为TestNative的Java文件,注意包名。 package org。

druze。test; publicclass TestNative { publicnativevoid sayHello(); publicvoid sayHello2(){ System。

out。println("Say Hello From Java"); } } 如代码所示,对于sayHello方法声明为native,这一部分将由C++的动态库来实现。

2。 生成class文件 使用javac org/druze/test/TestNative。

java生成class文件 注意:执行该命令在org所在目录执行。 3。

使用javah命令生成相应的C++头文件 使用javah org。druze。

test。TestNative生成名为 org_druze_test_TestNative。

h的头文件 注意:执行该命令在org所在目录执行。 该头文件的内容如下: /* DO NOT EDIT THIS FILE - it is machine generated */ #include /* Header for class org_druze_test_TestNative */ #ifndef _Included_org_druze_test_TestNative #define _Included_org_druze_test_TestNative #ifdef __cplusplus extern "C" { #endif /* * Class: org_druze_test_TestNative * Method: sayHello * Signature: ()V */ JNIEXPORT void JNICALL Java_org_druze_test_TestNative_sayHello (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif 4。

创建C++解决方案 此处以VS2008为例。 新建一个VC++的Win32项目,选择如图所示的控制台应用程序。

项目名称为NativeCode。 点击确定后,再点击下一步,出现该页面,应用程序类型选择DLL,附加选项选择DLL 5。

创建号工程之后,将org_druze_test_TestNative。h导入到工程里面,并创建名为source。

cpp的源代码,内容如下: #include"org_druze_test_TestNative。h" #include using namespace std; JNIEXPORT void JNICALL Java_org_druze_test_TestNative_sayHello(JNIEnv *env, jobject obj) { cout } 6。

在工具->选项->项目和解决方案->VC++目录菜单中,平台选择Win32,选择“显示以下内容的目录”为“包含文件”,导入jni。h和jni_md。

h的路径。 7。

编译,生成NativeCode。dll,并将其copy到环境变量PATH的路径下。

8。 修改TestNative。

java package org。druze。

test; publicclass TestNative { publicnativevoid sayHello(); publicstaticvoid main(String[] args) { // 加载动态连接库DLL,如果没有找到的话,则会在运行时报错 System。 loadLibrary("NativeCode"); TestNative tnt = new TestNative(); tnt。

sayHello(); } publicvoid sayHello2(){ System。out。

println("Say Hello From Java"); } } 运行,显示“Hello World!” 9。 注意头文件jni。

h和jni_md。h可以直接导入到工程中也可以。

10。注意NativeCode。

dll必须放置在java命令能访问的路径中。 二、从C++调用Java 1.创建TestNative2。

Java package org。 druze。

test; publicclass TestNative2 { publicstaticvoid testPrint(){ System。out。

println("this is from static method"); } publicstaticint testReturn(){ return 22; } publicstaticint testInput(int number){ return 22+number; } publicint testInstance(int number){ System。 out。

println("this is from instance method"); return 11+number; } }。

5.android开发 现在有个C++代码,我需要java调用它,请问如何实现,

[代码] 步骤 #1:使用ANT编译项目 NativeAdd.java01package org.apache;02 03import Android.util.Log;04 05public class NativeAdd {06 static {07 try {08 Log.i("JNI", "Trying to load libNativeAdd.so");09 System.loadLibrary("NativeAdd");10 }11 catch (UnsatisfiedLinkError ule) {12 Log.e("JNI", "WARNING: Could not load libNativeAdd.so");13 }14 }15 16 public static native long add(long a, long b);17} [代码] 下面片断给出主activity中如何调用这个类/方法01public void onClick(View view) {02 Log.i(LOG_TAG, "onClick");03 04 EditText a = (EditText) findViewById(R.id.a);05 EditText b = (EditText) findViewById(R.id.b);06 EditText c = (EditText) findViewById(R.id.c);07 Log.i(LOG_TAG, "calling native method");08 long sum = NativeAdd.add( Long.parseLong(a.getText().toString()),09 Long.parseLong(b.getText().toString()));10 Log.i(LOG_TAG, "back from native method");11 String text = Long.toString(sum);12 c.setText("Native add returns = " + text.subSequence(0, text.length()));13 } [代码] 步骤#2:运行下面的命令产生头文件1javah -classpath ../../Android.jar;../bin/classes; org.apache.NativeAdd [代码] 新产生的头文件“(org_apache_CallNative.h”内容如下01/* DO NOT EDIT THIS FILE - it is machine generated */02#include03/* Header for class org_apache_NativeAdd */04 05#ifndef _Included_org_apache_NativeAdd06#define _Included_org_apache_NativeAdd07#ifdef __cplusplus08extern "C" {09#endif10/*11 * Class: org_apache_NativeAdd12 * Method: add13 * Signature: (JJ)J14 */15JNIEXPORT jlong JNICALL Java_org_apache_NativeAdd_add16 (JNIEnv *, jclass, jlong, jlong);17 18#ifdef __cplusplus19}20#endif21#endif [代码] 步骤#3: 编写C文件如下“org_apache_NativeAdd.c”1#include "org_apache_NativeAdd.h"2 3JNIEXPORT jlong JNICALL Java_org_apache_NativeAdd_add4 (JNIEnv *env, jclass c, jlong a, jlong b)5{6 return a + b;7} [代码] 步骤#5: 编译和连接 org_apache_NativeAdd.c/org_apache_NativeAdd.h为一个共享库.1arm-none-linux-gnueabi-gcc -I/usr/lib/jvm/java-1.5.0-sun/include -I/usr/lib/jvm/java-1.5.0-sun/include/linux -fpic -c org_apache_NativeAdd.c2arm-none-linux-gnueabi-ld -T armelf_linux_eabi.xsc -shared -o libNativeAdd.so org_apache_NativeAdd.o [代码] 步骤 #6: 复制编译文件到模拟器中. 同时安装APK程序.view sourceprint?1adb push native/libNativeAdd.so /system/lib2adb install bin/CallNative.apk 你看下这是我自己做的时候一些经验 ,你看看是否对你有帮助。

androidc调用java注意事项

相关推荐:
  • bmc材料产品使用(请问BMC是甚麽材料,以及有何用途呢?)
  • 小孩做雾化时(雾化吸入的注意事项)
  • 公安看管对象(被监视居住人的义务)
  • 种蛭产茧(种蚂蝗产茧,水蛭在产茧期需要做什么呢?该注意什么)
  • 盆栽芙蓉花的养殖方法和(芙蓉花怎么养)
上一篇:以母爱开头的作文(写母亲的作文开头和结尾) 下一篇:舞蹈演出活动(校园舞蹈大赛活动策划)

相关推荐

bmc材料产品使用(请问BMC是甚麽材料,以及有何用途呢?)
小孩做雾化时(雾化吸入的注意事项)
公安看管对象(被监视居住人的义务)
种蛭产茧(种蚂蝗产茧,水蛭在产茧期需要做什么呢?该注意什么)
盆栽芙蓉花的养殖方法和(芙蓉花怎么养)
蓝月亮洗衣液(蓝月亮洗衣液的使用方法?)
肌腺症月经(子宫腺肌症经期饮食····请问有什么注意事项么,能不能和胎盘鸡)
冰袋冰敷护理(冰袋降温的注意事项有哪些)
脑血栓后室外冷(脑血栓冬天怕冷怎么办)
房间墙补漆(房屋墙壁喷漆要注意什么事项)
潮流时尚 写作素材 创新创业
生活常识 策划方案 安全知识
自考专业 家居生活 三农创业
励志故事 时尚穿搭 星座知识
热门分类

声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
 蜀ICP备2020033479号-4  Copyright © 2016  学习鸟. 页面生成时间:89.789秒

返回顶部