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

石龙镇仿做网站住房与城乡建设部网站 黑龙江

石龙镇仿做网站,住房与城乡建设部网站 黑龙江,北京保安公司,青海西宁最新消息今天前两篇我们讲了中间件的开发和打包应用, Android framework 中间件开发(一) Android framework 中间件开发(二) 这边我们来讲一下在中间件中编写JNI 1.新建C文件 找到frameworks\base\services\core\jni\路径,新建一个cpp文件,文件名为com_android_server_DarkControlService.c…

        前两篇我们讲了中间件的开发和打包应用,

        Android framework 中间件开发(一)

        Android framework 中间件开发(二)

        这边我们来讲一下在中间件中编写JNI

        1.新建C++文件

        找到frameworks\base\services\core\jni\路径,新建一个cpp文件,文件名为com_android_server_DarkControlService.cpp,里面就写两个测试函数,内容如下:

#define LOG_TAG "--==>>"
#include <utils/Log.h>
#include <log/log.h>
#include <jni.h>
#include <android_runtime/AndroidRuntime.h>
#include <nativehelper/JNIHelp.h>
#include "core_jni_helpers.h"namespace android{static jint android_server_DarkControlService_getSum(JNIEnv *env, jobject thiz, jint num1, jint num2)
{ALOGE("num1: %d, num2: %d",num1,num2);return num1+num2;
}static void android_server_DarkControlService_testPrint(JNIEnv *env, jobject thiz,jstring str)
{const char* cstr = env->GetStringUTFChars(str, NULL);ALOGE("testPrint: %s",cstr);// 记得释放内存env->ReleaseStringUTFChars(str, cstr);
}static const JNINativeMethod method_table[] = {{ "native_getSum", "(II)I",(void *)android_server_DarkControlService_getSum },{ "native_testPrint", "(Ljava/lang/String;)V",(void *) android_server_DarkControlService_testPrint },
};int register_android_server_DarkControlService(JNIEnv *env)
{return jniRegisterNativeMethods(env, "com/android/server/DarkControlService",method_table, NELEM(method_table));
}} // namespace android

        里面有几个重要的地方,static const JNINativeMethod method_table[]和register_android_server_DarkControlService
        method_table中需要将暴露给java的函数都在里面声明一下,注意每个函数的传参和返回值,

        register_android_server_DarkControlService:这个是将这个C++代码和中间件的service类绑定起来

        2.引入源文件

        找到frameworks\base\services\core\jni\Android.bp,将刚刚写的cpp文件添加到这边:

        3.初始化绑定 

        找到frameworks\base\services\core\jni\onload.cpp文件,将刚刚的register_android_server_DarkControlService函数添加进去,

        4.调用jni 

        在DarkControlService中添加jni中的两个函数

然后我们调用一下这两个函数,

这样就算完成了,重新编译之后开机我们看一下执行的log

http://www.dtcms.com/wzjs/833180.html

相关文章:

  • 做360优化网站都有哪家怎么把网站整站下载
  • 网站建设的目的和意义站长统计官方网站
  • 科技感网站编写网站程序
  • 沭阳找做网站合伙前端企业网站开发
  • 个人网站建设基础与实例ps做网站效果图
  • 前端做网站的兼职网站的动态图怎么做的
  • 崇左网站建设公司网站平台设计费用多少
  • 适合新手做的网站项目wordpress 访问空白
  • 常州外贸网站网站设计 布局
  • 做网站卖多少钱一个专业建设计划
  • 网站建设学的课程wordpress 绑定二级域名
  • 设计类网站策划书wordpress主题集成插件
  • 北京做网站浩森宇特微信营销ppt
  • 自己网站页面设计软件网站做推广赚钱项目
  • 做网站的如何说服客户该网站正在紧急升级维护中
  • 邢台好蜘蛛网站建设以投资思维做网站
  • 任县企业做网站建站重庆
  • 网站头部通用代码重庆在线高校开放平台
  • 恋爱ppt模板免费下载网站广元市城乡规划建设监察大队网站
  • 长沙微网站电话号码推广软件是什么意思
  • 怎样建自己的网站免费的seo标题关键词优化
  • 黄村专业网站建设公司中国制造网外贸平台网址
  • ui设计师作品集网站做网站用什么开发工具好
  • 临汾花果街网站建设百度指数做网站
  • 青岛市做网站优化做外贸的网站需要什么
  • 有后台的网站如何建设wordpress w3c
  • 班组安全建设 网站html手机网站开发教程
  • 电子商务网站建设书籍织梦 网站教程
  • 网站开发工程师职业定位包装公司网站模板
  • 网站制作_做网站_耐思智慧大连万词推广