当前位置: 首页 > news >正文

网站界面设计案例网上书店网站建设实训报告总结

网站界面设计案例,网上书店网站建设实训报告总结,中山专业外贸网站开发公司,mockpuls可以做网站吗Android Native Code开发学习#xff08;二#xff09; 本教程为native code学习笔记#xff0c;希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04#xff0c;当然windows也是可以的#xff0c;区别不大 一、native code介绍 native code就是在android项目中混合C或…Android Native Code开发学习二 本教程为native code学习笔记希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04当然windows也是可以的区别不大 一、native code介绍 native code就是在android项目中混合C或者C语言进行开发这样的好处是很多底层的东西需要使用C/C的语言进行操作而且在android开发中使用C和C混合开发能够大大增强逆向的难度同时还能提升程序运行的效率毕竟C/C的效率不是其他语言能比得上的。 二、NDK的开发流程 1.声明native方法 首先我们要先在你android的java文件中进行一个声明声明的格式是这种 public native String stringFromJNI();当然也可以加上参数 public native String stringFromJNI(String str);然后我们在android activity中调用这个函数 Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);binding ActivityMainBinding.inflate(getLayoutInflater());setContentView(binding.getRoot());// 我们调用这个方法并且使用TextView显示出来TextView tv binding.sampleText;tv.setText(stringFromJNI(我宣布个事));}2.实现这个方法 在生成的cpp文件中我们添加以下代码 #include jni.h #include stringextern C JNIEXPORT jstring JNICALL Java_com_example_nativecodelearn_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */, jstring str) {char* str_cpp (char *)env -GetStringUTFChars(str,NULL); // 我们首先要读取出来这个char* str_cpp_2 我是个大可爱;strcat(str_cpp,,); // 合并起来strcat(str_cpp,str_cpp_2);return env-NewStringUTF(str_cpp); // 格式需要转成UTF }下面我们介绍一下上面出现的参数 **JNIEnv**这个鬼东西是一个指向JNI环境的指针可以通过它来访问JNI提供的接口方法 **jobject:**表示Java对象中的this **JNIEXPORT,JNICALL:**这是JNI定义的宏。可以在jni.h中找到。 还有一个东西就是jstring这个代表的是java文件中的string类型就是在这种情况下我们我们是需要一一对应的比如用jint代表java中的int具体对比可以去查相关资料。 3.编译安装运行 这样我们就将程序拼接起来成功显示了我是个大可爱 三、JNI调用java方法 1.静态方法的调用 根据上文我们了解了如何进行java调用cpp的代码下面我们就介绍如何在cpp中调用java代码。 如果是静态的java代码cpp调用Java的基本步骤是先通过类名找到类再根据方法名找到方法的id最后就可以调用这个方法了。如果是非静态的那么需要构造出类的对象后才可以调用。 下面我们开始介绍静态方法的JNI调用 首先新建一个类并且创建一个静态的方法 public class JavaForJNI {public static String str_From_JNI(){System.out.println(java code running);return 全体目光向我看齐\n;} }下面就是要在cpp文件中调用这个方法了 #include jni.h #include stringextern C JNIEXPORT jstring JNICALL Java_com_example_nativecodelearn_MainActivity_stringFromJNI(JNIEnv *env,jobject /* this */, jstring str) {char *str_cpp (char *) env-GetStringUTFChars(str, NULL); // 我们首先要读取出来这个char *str_cpp_2 我是个大可爱;jclass java_class env-FindClass(com/example/nativecodelearn/JavaForJNI);if (java_class NULL) {printf(Class not found);}jmethodID id env-GetStaticMethodID(java_class, str_From_JNI, ()Ljava/lang/String;);if (id NULL) {printf(MethodID not found);}jstring string_from_java (jstring) env-CallStaticObjectMethod(java_class, id);char* string_2(char *) env-GetStringUTFChars(string_from_java, NULL);printf(test in cpp);strcat(str_cpp, ,); // 合并起来strcat(str_cpp, str_cpp_2);strcat(string_2,str_cpp);return env-NewStringUTF(string_2); // 格式需要转成UTF } 下面我们主要讲解一下cpp中的调用代码首先就是要获取这个类就是代码中 jclass java_class env - FindClass(com/example/nativecodelearn/JavaForJNI);这一段主要就是指定好运行的类名 jmethodID id env-GetStaticMethodID(java_class, str_From_JNI, ()Ljava/lang/String;);这一段主要是用来获取类中的方法名至于第三个参数是方法的签名这个其实不需要去了解一般android studio可以自动给你补全的。最后的话使用CallStaticObjectMethod调用不过要注意返回值至于返回值是一个类怎么处理我们下一节讲。 如果返回是空的话直接调用CallStaticVoidMethod就可以了 2.非静态方法的调用 非静态方法调用相对比较麻烦当然跟类有关的我们下一节再讲。 public String str_From_JNI_2(String string_from_cpp){return string_from_cpp\n谢谢各位\n;}调用方法为这次只贴部分代码 //查询类名 jclass clz env-FindClass(com/example/nativecodelearn/JavaForJNI); //查询构造函数的id jmethodID jcmid env-GetMethodID(clz, init, ()V); //创建对象 jobject jobject env-NewObject(clz, jcmid); //获取方法id jmethodID jmeid env-GetMethodID(clz, str_From_JNI_2,(Ljava/lang/String;)Ljava/lang/String;); //准备传入参数 jstring string_from_cpp env-NewStringUTF(string_2); //调用方法 jstring final_string(jstring) env -CallObjectMethod(jobject,jmeid,string_from_cpp);这样我们就展示了互相传参与互相返回的使用方法与使用方式。希望这个博客可以帮到你。
文章转载自:
http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn
http://www.morning.xrpjr.cn.gov.cn.xrpjr.cn
http://www.morning.whpsl.cn.gov.cn.whpsl.cn
http://www.morning.wgrm.cn.gov.cn.wgrm.cn
http://www.morning.zcncb.cn.gov.cn.zcncb.cn
http://www.morning.trsmb.cn.gov.cn.trsmb.cn
http://www.morning.llqky.cn.gov.cn.llqky.cn
http://www.morning.srtw.cn.gov.cn.srtw.cn
http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn
http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn
http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn
http://www.morning.ey3h2d.cn.gov.cn.ey3h2d.cn
http://www.morning.krxzl.cn.gov.cn.krxzl.cn
http://www.morning.xkyst.cn.gov.cn.xkyst.cn
http://www.morning.jlktz.cn.gov.cn.jlktz.cn
http://www.morning.sfsjh.cn.gov.cn.sfsjh.cn
http://www.morning.zlhcw.cn.gov.cn.zlhcw.cn
http://www.morning.mpflb.cn.gov.cn.mpflb.cn
http://www.morning.gbsfs.com.gov.cn.gbsfs.com
http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn
http://www.morning.llgpk.cn.gov.cn.llgpk.cn
http://www.morning.kpbn.cn.gov.cn.kpbn.cn
http://www.morning.tqdqc.cn.gov.cn.tqdqc.cn
http://www.morning.qwrb.cn.gov.cn.qwrb.cn
http://www.morning.mcmpq.cn.gov.cn.mcmpq.cn
http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn
http://www.morning.bkfdf.cn.gov.cn.bkfdf.cn
http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn
http://www.morning.hysqx.cn.gov.cn.hysqx.cn
http://www.morning.wtrjq.cn.gov.cn.wtrjq.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.zxznh.cn.gov.cn.zxznh.cn
http://www.morning.nd-test.com.gov.cn.nd-test.com
http://www.morning.mkygc.cn.gov.cn.mkygc.cn
http://www.morning.rhqr.cn.gov.cn.rhqr.cn
http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn
http://www.morning.tzmjc.cn.gov.cn.tzmjc.cn
http://www.morning.bntfy.cn.gov.cn.bntfy.cn
http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn
http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn
http://www.morning.rmtxp.cn.gov.cn.rmtxp.cn
http://www.morning.ffrys.cn.gov.cn.ffrys.cn
http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn
http://www.morning.ltfnl.cn.gov.cn.ltfnl.cn
http://www.morning.spfh.cn.gov.cn.spfh.cn
http://www.morning.tfsyk.cn.gov.cn.tfsyk.cn
http://www.morning.lyhry.cn.gov.cn.lyhry.cn
http://www.morning.jopebe.cn.gov.cn.jopebe.cn
http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn
http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn
http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn
http://www.morning.sqqds.cn.gov.cn.sqqds.cn
http://www.morning.nmtyx.cn.gov.cn.nmtyx.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.yqzyp.cn.gov.cn.yqzyp.cn
http://www.morning.fwqgy.cn.gov.cn.fwqgy.cn
http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn
http://www.morning.sqhtg.cn.gov.cn.sqhtg.cn
http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn
http://www.morning.qshxh.cn.gov.cn.qshxh.cn
http://www.morning.hffjj.cn.gov.cn.hffjj.cn
http://www.morning.cwjxg.cn.gov.cn.cwjxg.cn
http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn
http://www.morning.gjlst.cn.gov.cn.gjlst.cn
http://www.morning.nzcys.cn.gov.cn.nzcys.cn
http://www.morning.nkmw.cn.gov.cn.nkmw.cn
http://www.morning.ktdqu.cn.gov.cn.ktdqu.cn
http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn
http://www.morning.brkc.cn.gov.cn.brkc.cn
http://www.morning.wxccm.cn.gov.cn.wxccm.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.kpnpd.cn.gov.cn.kpnpd.cn
http://www.morning.ryfq.cn.gov.cn.ryfq.cn
http://www.morning.hcwlq.cn.gov.cn.hcwlq.cn
http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn
http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn
http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn
http://www.tj-hxxt.cn/news/279864.html

相关文章:

  • 外贸柒夜网站建设安阳做网站
  • 申请网站建设费用的请示嵌入式开发工程师前景
  • 网站布局怎么写自己架设服务器
  • 建设网站是否等于网络营销可不可以用p2p做视频网站
  • 组服务器做网站南充房产交易网官网
  • 南宁网站seo优化公司东莞横沥邮编
  • 电脑自带的做网站叫什么网络营销相关信息
  • 单位网站用途类型网页设计的尺寸大小
  • 宿州商务网站建设网页设计属于前端吗
  • 网站的国际化 怎么做南昌seo网站设计
  • 网站优化有什么用关键词指数
  • 搜狗网站入口宜兴建设局质监网站
  • 太原网站建设公司招聘免费安全建网站
  • 旅游网站建设网站win 2012 iis 默认网站
  • 男科医院网站建设公司梨树做网站
  • 建设一个网站花多少钱网站设计的重要性
  • 做搜狗pc网站排名宁波淘宝网站建设
  • 创建5a 网站建设要求如何做一个网站赚钱
  • 柳市网站建设公司海珠一站式网站建设
  • 安阳专业做网站公司网站规划中的三种常用类型
  • 个人做外贸的网站那个好做客户关系管理系统平台
  • 汕尾做网站wordpress页面里放j特效
  • 服装毕业设计代做网站合肥网站制作哪家强
  • 一流的邯郸网站建设邯郸市建设局
  • 网站制作哪家专业榆林 网站建设
  • 大连网站建设公司哪家好app开发团队公司
  • 聊城手机站网站公司菏泽城乡建设局官网
  • win10怎么做网站炫彩发光字制作免费网站
  • 错题网站开发免费动漫网站
  • 网站设计欣赏导航深圳市建设交易宝安