JNI is generic concept,  It is the way to integrate your Java programs
with legacy C/C++ code, including the ability to embed a JVM within
your native applications. Any Java application want to communicate
with Native application through JNI.

NDK: This is Android specific. To compile any C application we need
libc library. For Android they have customized C-library is Bionic. It
also contains several cross tool chains, set of header files for
different libs etc.

So if you want to compile any C/C++ application you need NDK. This
native application you want to use in Android applications (Java
level) you need JNI.

Any Android application(Java) will run in DVK. I guess DVK is also
customized JVM for Android. If you create any native application which
will run in native level not in DVK.

In general we have to create Native library and those need to use in
Android Applications (Java) using JNI. It means this application will
execute in DVK. If your native library create fork() and generate
child process, this child process may not run in DVK. It may run in
native level and DVK does not have any handle on it.

Thanks

On Jun 28, 1:51 pm, Padma <reachoutforpa...@gmail.com> wrote:
> Hi all,
>
> Can somebody explain the basic difference between NDK & JNI.
> Why Android uses NDK instead of JNI?
> How NDK differs from JNI?
> Can I use JNI in DVM instead of NDK?(is jni compatible with dvm)
>
> Kindly share some valuable  info about NDK and JNI.
>
> Regards,
> Padma

-- 
unsubscribe: android-kernel+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-kernel

Reply via email to