1. Write a Java file, declare the native method in it, and load the dynamic link library through the static statement block. The sample Prompt. java code is as follows: classPrompt {privatenativeStringgetLine (Stringprompt); publicstaticvoidmain
1. Write a Java file, declare the native method in it, and load the dynamic link library through the static statement block. The sample Prompt. java code is as follows:Class Prompt {Private native String getLine (String prompt );
Public static void main
Other code is not important, but C code is important.
Nativerenderer. cpp
# Include
The second important part is: Android. mk
# Copyright (c) 2009 the android open source project
The important part of Android. mk is: local_ldlibs: =-llog-lglesv2-lglesv1_cm-LDL.
For example, without-LDL, you cannot call glvertexpointer (3, gl_float, 0, gtrianglevertices) in C/C ++; and
Glcolorpointer (4, gl_float, 0, _ colorarray );
-LDL is a function library, I d
Objective
In some cases, according to the needs of the project can not avoid the use of local things, the most common is that Java want to visit the window local dongdong, such as to adjust the speed of mouse movement, change the form background, Even using Javaapplet as a remote control based on Windows. Like pcanywhere, what to do? Here's how to get started with the simplest example.
Steps
Write a Helloworld.java
class HelloWorld { public nati
system.
Here, we do not write kernel drivers for real hardware devices. To facilitate the description of the process of writing kernel drivers for the Android system, we use a virtual hardware device that has only a 4-byte register that can be read and writable. The first time we learn programming languages, we like to use "Hello, World" as an example, here, we have this virtual device named "Hello", and this kernel driver is also named Hello driver.
directory contains the implementation code of the JNI function, including the. C or. cpp file and. h file. Makefile is a file that compiles and organizes files in the Java and SRC directories to generate executable files. After the MAKEFILE file is executed, the following subdirectories are generated: Lib, class, and bin. The lib directory contains the static library file libjniexamples. So generated by the project. The
, including the. C or. cpp file and. h file. Makefile is a file that compiles and organizes files in the Java and SRC directories to generate executable files. After the MAKEFILE file is executed, the following subdirectories are generated: Lib, class, and bin. The lib directory contains the static library file libjniexamples. So generated by the project. The JNI method called by the Java program is called through this library. The class directory con
work, and in the process of writing accidentally may write wrong, in fact, Java provides us with Javah tools to help generate the corresponding header file. In the generated header file is the corresponding JNI function generated in accordance with the above-mentioned rules, we are in the development of a direct copy of the past can be. Here is the code above for example, after compiling in Androidstudio,
Solution:
To copy the following files to the include folder under the JDK installation directory
\ JDK \ include \ JNI. h
\ JDK \ include \ Win32 \ jawt_md.h
\ JDK \ include \ Win32 \ jni_md.h
The above three files under the JDK installation directory are copied to the include folder under the VC directory. For example, my installation location is:
D: \ Program Files \ Microsoft Visual Studio \ vc98 \
can manually to follow this rule to write, but if the native method is particularly many, then there is a certain amount of work, and in the process of writing accidentally may write wrong, in fact, Java provides us with Javah tools to help generate the corresponding header file. In the generated header file is the corresponding JNI function generated in accordance with the above-mentioned rules, we are in the development of a direct copy of the past
Reprint Please specify Source: http://blog.csdn.net/xyang81/article/details/42047899When we call a Java native method, how are the arguments in the method passed to the C + + local function? What is the conversion between the parameters in a Java method and the parameters in a C + + function? I guess you should also have some doubts about it, let's take a look at an example, or use HelloWorld as an example:Helloworld.java:Package Com.study.jnilearn;cl
time-consuming class search.
From the test above, we can see that when calling the JNI interface to obtain the method ID, field ID, and Class reference, if the cache is not used, the performance will be as low as 4 times. Therefore, in JNI development, the rational use of the cache technology can greatly improve the performance of the program. There are two types of cache: cache in use and cache in class s
, which is no longer as free as the previous cross-platform. If you want to implement a cross-platform, you must compile the local code under different operating system platforms for the corresponding dynamic library.The JNI development process is mainly divided into the following 6 steps:1. Writing Java source code2. Compile the Java source code into a class byte code file3, the Javah-jni command to genera
is based on Java implementations, which means that third-party apps that are developed based on the Android SDK must use the Java language. But this is not the same as "third-party apps can only use Java." When the Android SDK was first released, Google announced that its virtual machine Dalvik supported JNI programming, which means that third-party applications could call their own C dynamic library through JNI
JNI/NDK Development Guide (11) -- JNI Exception Handling, ndkjni
Reprinted please indicate the source: http://blog.csdn.net/xyang81/article/details/45770551Exception description
Exception. The explicit opinion is that the program is not executed according to the normal program logic during the running process, and some errors occur during the execution process, causing the program to crash. In Java, except
The previous two articles introduce some corresponding relationships between the JNI layer and the Java layer, including the method name, data type and method name, which are believed to be at the theoretical level. Can very well help us to understand the role of JNI in local development of native, and have a preliminary understanding of some of the concepts of JNI
Java programming-everything you should know about JNI, Java programming-JNI
Due to efficiency issues, in many cases, we need to call the underlying C or C ++ implementation in the upper-layer Java code, so that jni can be used. Jni (Java Native Interface) allows Java code to interact with code written in other languag
are not necessary. The key part is only oneInclude
And JNIEXPORT jstring JNICALL Java_com_example_exercise_MainActivity_getStr (JNIEnv *, jobject );
Among them, jni. h is the header file of the corresponding type and function in c corresponding to the types and methods in java defined by jni. This is required.
Second, JNIEXPORT jstring JNICALL Java_com_example_exercise_MainActivity_getStr (JNIEnv
Simple use of Android-JNI and android-jni
What is JNI?JNI is short for Java Native Interface. It provides several APIs for Java to communicate with other languages (mainly C C ++ ). Since java, the JNI standard has become part of the Java platform. It allows java code to i
In the previous example, we would find that when a method is defined in a Java class, such as the following:public class Paramtransfertest {public static int testval = 1;public native void Changetestval ();In the corresponding JNI layer, the header file generated by Javah and its corresponding C file must have a method name such as the following:jniexport void Jnicall Java_com_lms_jni_paramtransfertest_chan
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.