- 博客(27)
- 资源 (8)
- 收藏
- 关注
原创 Android NDK开发 JNI 基础
JNI——Java Native Interface,它是Java平台的一个特性(并不是Android系统特有的)。其实主要是定义了一些JNI函数,让开发者可以通过调用这些函数实现Java代码调用C/C++的代码,C/C++的代码也可以调用Java的代码,这样就可以发挥各个语言的特点了。
2024-11-28 20:09:42
567
原创 系统级应用锁的实现方法
应用锁是一种常见的需求, 下面提供一个个人认为还比较完美的解决方法。本篇从两个方面详述应用锁的实现方法。二. 实现效果及细节。
2024-07-04 21:43:42
292
原创 从0开始写android
前言接上文,测量完View树的每个节点View的宽和高后,开始布局。ViewRootImpl->performLayout(lp, mWidth, mHeight);ViewGroup -> layout(int l, int t, int r, int b)View -> layout(int l, int t, int r, int b)View ->setFrame(l, t, r, b)DecorView-> onLayout(changed, l, t, r, b)FrameLayout->onL
2024-02-01 12:01:04
393
原创 用python写一个抽奖的程序
年会时公司用的一个抽奖的软件出错了, 于是想着自己写一个吧.这类的程序用python来实现是再简单不过了.很简单的一个小应用,希望后面能用得着.
2024-01-22 10:40:28
914
原创 从0开始写android
接上文, android源码在setContentView 后, 即创建DecorView 的树型结构。接着就开始走onResume流程,在onResume 创建了ViewRootImpl 在ViewRootImpl的addView中,调用了performTraversal 函数, 这个函数中实现了 三个主要流程, performMeasure, performLayout, performDraw。本文将着重描述 performMeasure 即测量 DecorView 的整个算法和数据结构。
2023-12-29 22:27:40
504
1
原创 从0开始写android
接上一章节,我们实现了 创建一个应用进程的完整流程,接下来从ActivityThread 的attach开始,我们尝试在linux环境下实现 onCreate的 setContentView 函数 和onResume 函数,接下来我们不会用到binder等跨进程通信机制,接下来我们尽量用简洁的代码复现 setContentView 的将xml文件装成DecorView为根节点的树形结构的过程。本文对 setContentView 函数 将xml 转成DecorView 的过程进行了简化。
2023-12-20 19:35:02
738
原创 从0开始写android
接上篇第三步 分裂出systemserver 进程,在启动完系统的各种服务后。即开始启动launcher。本篇用三个章节,详细讲述了 android启动过程中如何构建应用启动的闭环。
2023-12-19 11:51:09
70
原创 从0开始写android
从ZygoteInit分裂出SystemServer进程提示:以下是本篇文章正文内容,下面案例可供参考本章详述了从ZygoteInit分裂出SystemServer进程的过程。
2023-12-18 21:55:46
115
1
原创 Ubuntu搭建基于nginx-http-flv-module流媒体服务
Ubuntu搭建基于nginx-http-flv-module流媒体服务
2022-10-27 16:04:38
1875
原创 FreeRTOS入坑指南
开发环境准备:一般平台都有自己的开发环境。 例如nxp 有mcu xpresso 开发工具。 这里我们推荐linux 上的freertos模拟器。 感谢GitHub - crazyskady/FreeRTOS_study: Study for FreeRTOShttps://github.com/crazyskady/FreeRTOS_study 贡献的代码, 我们把代码拉到本地 , 增加一个tmp 目录, 就可以顺利编译通过。下面就可以开启 freertos 之旅了。1.任务管理2..
2021-09-27 17:33:49
4573
原创 从零开始实现android的handler
Android 中handler 机制 概括起来需要三个步骤。Looper的准备工作,Looper.prepare()。 创建handler。 Looper开始运作,Looper.loop()。我们要实现handler 的机制,先从
2021-05-31 10:39:11
293
1
原创 用c语言实现android 的handler
所谓的同步并不是多个线程同时对内存进行访问,而是按照先后顺序依次进行的。线程同步的经典模型是生产者和消费者模型,读者写者问题,哲学家就餐问题。C语言实现的生产者和消费者模型#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <pthread.h>// 链表的节点struct Node{int number;str
2021-05-06 12:31:49
315
原创 Android 4G模块调试总结
4G模块调试总结 最近调试4G模块,在android 9 源码上调通 打电话,上网,发短信等功能。除了要整合驱动,也看了下android 的源码流程。下面这两张图 很详细,作者是花了心思整理的。一、拨号流程时序图:二、来电流程时序图参考 :https://www.jianshu.com/p/cfe9de14ed52...
2020-08-22 10:06:29
3196
原创 Android系统RTC调试从驱动到应用(二)
软件开发平台:android P 源码。硬件开发平台:nxp imx8m mini开发板,RTC 型号8025T。本文记录在nxp 8m mini 硬件平台, android P 源码的软件平台上调试RTC8025T驱动,RTC的framework 层android 已经写好了即 AlarmManagerService , APP 应用层通过((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)) 提供的接口来读取和设置 RTC 。
2020-05-16 18:31:03
708
原创 Android系统RTC调试从驱动到应用(一)
Android系统RTC调试从驱动到应用软件开发平台:android P 源码。硬件开发平台:nxp imx8m mini开发板,RTC 型号8025T。本文记录在nxp 8m mini 硬件平台, android P 源码的软件平台上调试RTC8025T驱动,RTC的framework 层android 已经写好了即 AlarmManagerService , APP 应用层通过((AlarmManager)mContext.getSystemService(Context.ALARM_SERVI
2020-05-16 18:23:17
2238
原创 Android系统韦根调试从驱动到应用(三)
Android系统韦根调试从驱动到应用软件开发平台:android P 源码。硬件开发平台:nxp imx8m mini开发板。本文记录在nxp 8m mini 硬件平台, androidP 源码的软件平台上调试韦根驱动,增加韦根的framework 层,并能在APP 应用层 获取韦根数据的流程。三.韦根应用层调试Framework层发出广播后,应用层要做的事情就简单了。在APP 增加一个BroadcastReceiver。<receiver android:name=".Wieg
2020-05-14 12:14:39
933
原创 Android系统韦根调试从驱动到应用(二)
Android系统韦根调试从驱动到应用软件开发平台:android P 源码。硬件开发平台:nxp imx8m mini开发板。本文记录在nxp 8m mini 硬件平台, androidP 源码的软件平台上调试韦根驱动,增加韦根的framework 层,并能在APP 应用层 获取韦根数据的流程。二.韦根Framework 层调试作为APP开发者是不需要知道驱动是如何工作的,只需要在读卡器贴卡时能得到卡号就可以了。上面我们完成了驱动的开发,那怎么上报给APP开发者呢, 就需要framework 这
2020-05-14 12:11:12
1311
1
原创 Android系统韦根调试从驱动到应用(一)
Android系统韦根调试从驱动到应用软件开发平台:android P 源码。硬件开发平台:nxp imx8m mini开发板。本文记录在nxp 8m mini 硬件平台, androidP 源码的软件平台上调试韦根驱动,增加韦根的framework 层,并能在APP 应用层 获取韦根数据的流程。一.韦根驱动调试硬件设计可以将Wiegand接口的Data0和Data1两个输出接到MCU的两个IO脚上,采用查询的方式接收数据,但这样接收并不可靠。比较好的方法是将Data0和Data1接到MCU的两
2020-05-14 12:01:33
2845
原创 QT 仿android launcher
QT 在嵌入式设备的图形界面开发上用的比较多,现在的嵌入式设备主流用的是android,QT的桌面又没有android那么好用,最近在做QT 的一些项目,于是想先用QT仿一个android 的luancher。整体思路分两步来实现,一是布局,二是事件响应。一.布局1. 参考android launcher setContentView(launcher.xml)的设置流程,先创建...
2018-07-23 19:33:18
1853
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人