Android底层驱动开发记录:01_JNI

Android系统2038年问题:从时间戳溢出到内核驱动的全链路解析 Unix时间戳是计算机系统中记录时间的基础方式,它表示自1970年1月1日以来的秒数。其原理在于使用一个整数来存储这一跨度,在32位系统中,该整数为有符号32位,最大值为2^31-1秒,这导致了著名的2038年问题——当时间到达2038年1月19日03:14:07 UTC后,数值溢出将引发时间计算错误。这一问题的技术价值在于,它揭示了系统底层时间处理机制的长期兼容性风险,直接影响需要长期稳定运行的嵌入式设备和物联网系统。在应用场景上,任何依赖系统时间进行调度、证书验证和日志记录的服务都可能受到影响,例如An 阅读详情

最近项目中需要用到了Android底层的开发,正好疫情居家所以又把韦老师的老教程第四期Android教程翻出来学习学习,手边也没有合适的板子,找了一块AIO-3288C的板子接了一块HDMI的屏来用。本来之前一直做单片机的,因此学起来还比较吃力,所以这里做一些记录,以备以后查看。

1. java学习,基本上跟着走了一遍,无波澜。C++因为会一点点就暂时跳过了,不行回来再补吧。

2. AIO-3288C环境搭建,最好是有一台真机 4G以上内存,硬盘至少100G,我这虚拟机空间有限编译不能通过,最后拿出很久之前买的腾讯云,Ubuntu18+2G内存+设置虚拟16G内存+100G硬盘,这个配置是偏低的但勉强用能编译SDK能通过。环境搭建上主要是open-7-jdk比较麻烦,可以参考我另一篇文章。最后达成结果就是,固件能完成RK3288C刷机,能Android studio联调app;mobaxterm ssh sftp获取云服务器资源调试源码(试图在腾讯云上装samba来着,很麻烦,放弃了);串口可以打印RK3288C启动日志;使用Android studio自带的adb设置一下环境变量用来adb调试RK3288C。

3. 开始敲代码吧。

(1)做一个APP,3288真机仿真一下,没难度,跟着做就好了。

package com.example.app_0001_leddemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;
import com.example.hardlibrary.*;

public class MainActivity extends AppCompatActivity {

    private boolean ioonoff=false;
    private Button button=null;
    private CheckBox checkBox_io1=null;
    private CheckBox checkBox_io2=null;
    private CheckBox checkBox_io3=null;
    private CheckBox checkBox_io4=null;

    public void onCheckboxClicked(View view) {
        boolean checked= ((CheckBox)view).isChecked();

        switch (view.getId()){
            case R.id.checkbox_io1:
                if(checked){
                    Toast.makeText(getApplicationContext(), "checkbox1 on ",Toast.LENGTH_SHORT).show();
                    HardCtrl.ioCtrl(0,1);
                }else {
                    Toast.makeText(getApplicationContext(), "checkbox1 off",Toast.LENGTH_SHORT).show();
                    HardCtrl.ioCtrl(0,0)
Android手机直连单片机/传感器的串口调试APK(免Root,支持USB转串口) 这个APK工具让安卓手机秒变串口调试终端,插上USB转TTL/RS232/RS485适配器就能和单片机、温湿度传感器、PLC、智能电表等外设通信。不用电脑、不需Root,兼容Android 4.0以上系统。能自由设置波特率(300~2000000)、数据位(5~8)、停止位(1/1.5/2)、校验位(None/Even/Odd/Mark/Space)和硬件流控;收发数据实时显示,支持ASCII与十六进制双模式切换;自动添加时间戳、发送历史可翻查、内容支持复制导出;界面简洁,操作直观,适合嵌入式工程师现场快速 阅读详情

相关推荐

Simulink实战:5步搞定固定翼飞行器六自由度动力学建模(附模型下载)

本文提供了一份详细的Simulink实战指南,通过5个核心步骤手把手教你构建固定翼飞行器的六自由度动力学模型。内容涵盖从顶层架构设计、核心方程手动实现,到模型集成、测试调试及进阶优化的完整流程,旨在帮助航空航天学生和工程师将抽象理论转化为可运行的仿真模型,并附有模型下载。

perl8的博客 634

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1391

C8T6和ZET6选型更换过程中出现.\Obj\Project.sct(7): error: L6235E: More than one section matches selector - cann

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、问题原因二、解决方法三、现象总结 前言 又一件离谱的事情发生了,我之前转换过程中没有发生的错误,今天拿出来程序重新编译了一下,结果他奶奶滴一个新的错误出现了,而且我还完全不知道是什么原因导致的,先上图: 一、问题原因 之前我已经尝试过更换芯片选型,但是没有出现此类问题,今天更改的时候发现了,我还以为是个偶然错误,结果换来换去,还是有这个问题,那我之前说c8t6的程序更改成zet6上跑只需改芯片选型和宏定义岂不是啪啪打.

wx18045623090的博客 1489

DVWA靶场实战:手把手教你绕过文件上传限制,用蚁剑连接一句话木马

本文详细介绍了在DVWA靶场中如何绕过文件上传限制并利用蚁剑连接一句话木马的实战技巧。通过分析文件上传漏洞原理、创建一句话木马、使用Burp Suite拦截修改请求以及配置蚁剑连接WebShell的全过程,帮助安全研究人员深入理解Web安全防护与攻击技术。

weixin_30335575的博客 90

USRP B210 运行gnuradio时 FPGA固件版本冲突错误解决方法

事情起源于昨天拿到USRP后开始调试,结果整了一个下午都没解决这个问题。 昨天晚上自己思考了一下,觉得还是版本问题。 首先,uhd_find_devices和uhd_usrp_probe均可以正常运行,没有报错,固件正常加载,序列号也可看到。 teray@teray-X550JK:~$ uhd_find_devices [INFO] [UHD] linux; GNU C++ version 7.5...

斯哈研究所 4243

SV fork join_none & for循环结合使用

fork join_none与循环联用常见问题解决方案

ZhangShuHuai11的博客 880

ADB详细(从下载安装到灵活运用)

ADB(Android Debug Bridge)是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。可以在Android SDK/platform-tools中找到 adb 工具或下载ADB Kits。

LiuYong_01的博客 10万+

功能安全实战系列09-英飞凌TC3xx LBIST开发详解

英飞凌Tricore/LBIST开发详解

initiallizer的博客 1106

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: Ubuntu 16 18 安装openjdk-7
下一篇: Android底层驱动开发记录:02_JNI
孔孔如野
博客等级 码龄18年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值