我是Android应用程序开发的新手。我想使用android开发dll
。是否有可能开发和集成到Android应用程序。请告诉我解决方案。如果可能,请逐个告诉我解决方案。如何使用android创建dll
回答
您可以查看Android NDK,在这里http://developer.android.com/sdk/ndk/index.html。 NDK可以用来创建windows .dll文件的linux等价物.so文件。
至于我,我曾经为我自己写过关于NDK的笔记。那就是:
Required applicaitions:
1. Eclipse
2. CDT+Sequoyah plug-ins
3. Android ADT
4. Android NDK
Configuration:
1. Install Eclipse, ADT, CDT and Sequoyah plug-ins
2. In the Eclipse -> Window -> Preferences -> Android -> Native Development put NDK location
Steps:
1. Create new Android Project
2. Create Java class for working with native libraries (NativeLibrary.java)
3. In the class NativeLibrary.java define interface for native methods
4. Right click on Project -> Android Tools -> Add Native Support. Define name of the library.
5. Build the project
6. Go to PROJECT_HOME/bin
7. Create C header file with the command javah -jni <packagename>.NativeLibrary
8. Move this file to PROJECT_HOME/jni folder
9. Implement methods from the header file in the generated cpp file. Do not forget to include the moved header in this file.
10. In java classes create new object of NativeLibrary class and call its methods.
11. Build project.
UPDATE:循序渐进没有插件
所需的应用程序 - 这是你需要开发本地应用程序是什么。在我的情况下,我使用Eclipse + Android ADT插件+ Android CDT插件+ Sequoyah插件。您可以使用Eclipse安装它们 - >安装新软件
然后您应该下载Android NDK。你也应该导出PATH到它。
进行配置:你应该只定义路径到您的NDK在Eclipse - >窗口 - >首选项 - > Android的 - >本地发展
你不一定要使用这些插件,但它是更容易开发跟他们。但是,Sequoyah包含错误(或者它有时未正确配置我的电脑)
之后,您可以创建新的Android项目。然后你可以创建定义本地方法的java类。在我的情况下,这是NativeLibrary.java。这是它:
package com.testpack.nativetest;
public class NativeLibrary {
public native static int add(int a, int b);
static {
System.loadLibrary("nativ");
}
}
之后,建立你的Android项目。之后去到你的bin /班(我不知道,但它只是bin目录之前)目录:
cd ~/programming/android/workspace/NativeTest/bin/classes
并运行以下命令:
javah -jni com.testpack.nativetest.NativeLibrary
该命令应产生com_testpack_nativetest_NativeLibrary。 h bin/classes目录下的头文件。它应该看起来像:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_testpack_nativetest_NativeLibrary */
#ifndef _Included_com_testpack_nativetest_NativeLibrary
#define _Included_com_testpack_nativetest_NativeLibrary
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: com_testpack_nativetest_NativeLibrary
* Method: add
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_com_testpack_nativetest_NativeLibrary_add
(JNIEnv *, jclass, jint, jint);
#ifdef __cplusplus
}
#endif
#endif
在您的项目中创建jni目录并运行以下命令。它会将这个标题移动到jni目录。
mv com_testpack_nativetest_NativeLibrary.h ../../jni
之后,在jni目录中创建.c文件。在我的情况下,它是nativ.c,从.h文件中复制功能的定义和生成代码:
#include "com_testpack_nativetest_NativeLibrary.h"
JNIEXPORT jint JNICALL Java_com_testpack_nativetest_NativeLibrary_add
(JNIEnv *env, jclass obj, jint a, jint b) {
return a+b;
}
然后在JNI目录,你应该创建一个make文件Android.mk这。只需更改源(nativ.c)和您的库的名称(nativ)即可。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := nativ
LOCAL_SRC_FILES := nativ.c
include $(BUILD_SHARED_LIBRARY)
转到PROJECT_HOME目录。在我的情况下,这是
cd ~/programming/android/workspace/NativeTest
并运行ndk-build。就这样。之后,你可以在你的活动测试:
package com.testpack.nativetest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class NativeTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("TEST:", "Result 5+4=" + NativeLibrary.add(5, 4));
}
}
的插件实在是有点更容易开发。但我认为你应该自己测试如何做到这一点。
您好Yury,你可以解释精心制作的请愿书。我没有正确理解你的步骤。 – 2011-12-30 13:22:51
- 1. 如何使用NASM创建.dll文件?
- 2. 如何使用Cython创建站点dll
- 3. 使用MASM32创建DLL
- 4. 使用cygwin创建dll时
- 5. 创建和使用C#DLL
- 6. 如何创建资源DLL
- 7. UnsatisfiedLinkError - 如何创建C++ - DLL?
- 8. 如何使用Visual C++中使用C#创建的dll?
- 9. 如何创建和使用android库jar?
- 10. 如何使用Android手动创建NdefMessage?
- 11. 如何使用Java或Android创建identicon?
- 12. 如何使用scrollTo创建动画Android
- 13. 如何使用URI(Android)创建目录?
- 14. 如何创建Android应用
- 15. 创建pdfium DLL
- 16. 如何在C#中创建和使用DLL模块?没有DLL汇编
- 17. 使用nmake从cpp文件创建dll
- 18. 在qt创建器中使用dll
- 19. 使用nvcc从CUDA创建DLL
- 20. Delphi 7使用由VB.net创建的.DLL
- 21. 使用VS2010创建C++非托管DLL
- 22. 使用GCC创建新的DLL
- 23. 是否可以使用Java创建dll?
- 24. 使用cl.exe创建.lib或.dll
- 25. 使用MinGW64在Windows中创建OpenSSL dll
- 26. Visual C++:使用libcurl创建DLL
- 27. 使用C++/CLI创建一个dll
- 28. 在Symbian C++中创建和使用DLL
- 29. 使用RXTX jar和DLL创建runnable jar
- 30. 如何使用外部.dll创建.exe文件?
是deepak我知道,但我不明白那篇文章,这是你问你。良好提供以下步骤 – 2011-12-28 13:49:26
以下链接应该可以帮助你,http://stackoverflow.com/questions/4638778/ndk-api-reference -docs; http://stackoverflow.com/questions/4851109/how-to-build-ndk-application – Deepak 2011-12-28 13:57:12