怎样实现硬件访问服务(上)

简介: 怎样实现硬件访问服务

本文原文链接:https://xuesong.blog.csdn.net/article/details/80933999?spm=1001.2014.3001.5502



1、JNI 和 HAL

(com_android_server_ledservice.cpp)

注册JNI本地方法

|加载

hal_led.c : open,read,write


3、修改SystemServer.java:加载C库

1675857907836.jpg

在其main方法里面:

public static void main(String[] args){
    new SystemServer().run();
}
run(){
    System.loadLibrary("android_servers");//对应onload.cpp文件
}


run方法中:

1675857931851.jpg

JNI文件:注册本地方法com_android_server_LedService.cpp供LedService.java使用


1675857919238.jpg

有哪些本地方法

static const JNINativeMethod methods[] = {
    {"native_ledOpen","()I",(void *)ledOpen},
    {"native_ledClose","()V",(void *)ledClose},
    {"native_ledCtrl","(II)I",(void *)ledCtrl},
}


注册本地方法:

int register_android_server_LedService(JNIEnv *env)
{ 
    //给LedService 类注册
    return 
//注册本地方法。
jniRegisterNativeMethods(env,"com/android/server/LedService",methods,NELEM(methods));
}


onload.cpp:被调用

extern "C" jint JNI_On_Load()
{
    register_android_server_LedService(env);
}

1675857989256.jpg


对于复杂的操作可修改HAl,然后将生成的.so文件放到系统中。


startOtherServices:

1675858039374.jpg

1675858048167.jpg

1675858055880.jpg

这就是个类

1675858066658.jpg

调用一些NATive方法:

1675858254959.jpg

1675858264522.jpg

告诉系统是谁:

1675857663546.jpg

相关文章
|
人工智能 安全 计算机视觉
这款AI已经这么牛了!输入画面关键词就能找到相关画面视频片段素材
大家是否有过这样的经历?看到一个很棒的视频,却只想要其中几秒钟的片段,却要花费很长时间来搜索想要的片段。
3659 0
这款AI已经这么牛了!输入画面关键词就能找到相关画面视频片段素材
|
JavaScript 应用服务中间件 nginx
vuecli3打包项目上线之后报错怎么使用本地的sourcemap文件定位调试?
vuecli3打包项目上线之后报错怎么使用本地的sourcemap文件定位调试?
421 0
|
存储 人工智能 算法
【算法分析与设计】动态规划(下)(一)
【算法分析与设计】动态规划(下)
|
12月前
|
存储 人工智能 API
ChatGPT-on-WeChat:Star32.4k, DeepSeek加持!这款开源神器秒变AI助手,聊天体验直接起飞!
嗨,大家好,我是小华同学。今天为大家介绍一款结合DeepSeek引擎的开源项目——ChatGPT-on-WeChat,由开发者zhayujie打造。它将微信变成智能AI助手,支持文本、图片、语音对话,具备定时提醒、天气查询等扩展功能,完全开源且易于定制。项目地址:https://github.com/zhayujie/chatgpt-on-wechat。关注我们,获取更多优质开源项目和高效学习方法。
1296 11
|
SQL 监控 Oracle
关系型数据库Oracle 的Data Guard:
【7月更文挑战第7天】
269 3
|
Linux 网络安全
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
2332 3
|
机器学习/深度学习 人工智能 自然语言处理
利用机器学习进行股市预测的探索
【8月更文挑战第30天】在投资的世界里,预测股市走势是投资者们永恒的追求。本文将探讨如何通过机器学习技术来预测股市趋势,旨在为读者提供一种全新的视角和方法。我们将从基础的机器学习概念入手,逐步深入到具体的模型构建和训练过程,最后讨论如何评估模型的性能以及实际应用中可能遇到的挑战。虽然股市预测充满不确定性,但通过科学的方法和工具,我们可以更好地理解市场动态,为投资决策提供数据支持。
|
程序员 开发工具
Vim命令大全:掌握编辑利器
Vim命令大全:掌握编辑利器
|
NoSQL 数据处理 MongoDB
MongoDB与阿里云携手驱动WeLab汇立集团引领超千万用户迈向智能金融未来
阿里云数据库MongoDB版无论从数据特点还是技术要求方面,都完美地匹配了WeLab的需求
1193 0
MongoDB与阿里云携手驱动WeLab汇立集团引领超千万用户迈向智能金融未来
|
机器学习/深度学习 人工智能 数据可视化
视觉GPT | SegGPT:大通用分割模型登场!利用视觉 prompt 分割万物
视觉GPT | SegGPT:大通用分割模型登场!利用视觉 prompt 分割万物
1213 0