Android下引用系统库(.so文件)的方法及问题.docx

Android下引用系统库(.so文件)的方法及问题.docx

ID:57861456

大小:365.93 KB

页数:7页

时间:2020-09-02

Android下引用系统库(.so文件)的方法及问题.docx_第1页
Android下引用系统库(.so文件)的方法及问题.docx_第2页
Android下引用系统库(.so文件)的方法及问题.docx_第3页
Android下引用系统库(.so文件)的方法及问题.docx_第4页
Android下引用系统库(.so文件)的方法及问题.docx_第5页
资源描述:

《Android下引用系统库(.so文件)的方法及问题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、我们看一下如何在Android环境下引用/system/lib下的.so文件(若您也对此有所了解,还望不吝赐教后面的问题,先谢!)。为避免讲得混淆,先将我的代码的结构贴出来。首先,新建Android工程:AndroidJniTest,在AndroidJniTestActivity.java中的代码如下:[java]viewplaincopyprint?1.packagemars.com;2.importandroid.app.Activity;3.importandroid.os.Bundle;4.publicclassAndroidJniTes

2、tActivityextendsActivity{5./**Calledwhentheactivityisfirstcreated.*/6.@Override7.publicvoidonCreate(BundlesavedInstanceState){8.super.onCreate(savedInstanceState);9.setContentView(R.layout.main);1.System.loadLibrary("test");2.CallNativecallnative=newCallNative();3.byte[]cmd={

3、(byte)'u004c'};4.inta=callnative.writeCmd(cmd,"/system/lib");5.6.}7.}packagemars.com;importandroid.app.Activity;importandroid.os.Bundle;publicclassAndroidJniTestActivityextendsActivity{/**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceSt

4、ate){super.onCreate(savedInstanceState);setContentView(R.layout.main);System.loadLibrary("test");CallNativecallnative=newCallNative();byte[]cmd={(byte)'u004c'};inta=callnative.writeCmd(cmd,"/system/lib");}}再在包mars.com下建立文件:CallNative.java代码:[java]viewplaincopyprint?1.package

5、mars.com;2.publicclassCallNative{3.publicnativebyte[]readCmd(Stringpath);4.publicnativeintwriteCmd(byte[]cmd,Stringpath);5.}packagemars.com;publicclassCallNative{publicnativebyte[]readCmd(Stringpath);publicnativeintwriteCmd(byte[]cmd,Stringpath);}利用javah工具创建本地库文件的头文件mars_com_

6、CallNative.h代码:[cpp]viewplaincopyprint?1./*DONOTEDITTHISFILE-itismachinegenerated*/2.#include3./*Headerforclassmars_com_CallNative*/4.#ifndef_Included_mars_com_CallNative5.#define_Included_mars_com_CallNative6.#ifdef__cplusplus7.extern"C"{8.#endif9./*10.*Class:mars_com

7、_CallNative11.*Method:readCmd1.*Signature:(Ljava/lang/String;)[B2.*/3.JNIEXPORTjbyteArrayJNICALLJava_mars_com_CallNative_readCmd4.(JNIEnv*,jobject,jstring);5./*6.*Class:mars_com_CallNative7.*Method:writeCmd8.*Signature:([BLjava/lang/String;)I9.*/10.JNIEXPORTjintJNICALLJava_ma

8、rs_com_CallNative_writeCmd11.(JNIEnv*,jobject,jbyteArray,jstring);12

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。