大学

前言

天赋是无法靠努力达到才去拼的东西

这篇就不扯我阴暗的童年和阴暗的人生了,简单说就是,很多肝代码的动力,不仅仅是所谓的热爱,绝大部分跟我的生活有关,对某些事物的强烈的不甘心,从时间线来吧。

我在某些事情上会取得一些成功,除了个人的努力外,还有思想上的认知,我从来不信天赋。

我也很爱玩游戏,也不是一个只知道学习的机器人。

阅读更多

使用ADB获取安卓任务缩略图

前言

参考的文章

通过 ADB 获取安卓任务截图,这篇文章可能是 2022 年唯一能用的方案,目前测试了安卓12和安卓11,根据 shell.apk 这个系统 apk 自带的权限,想在任何版本中获取到后台任务的缩略图,应该都是可行的。

阅读更多

音视频小记 - 实现 MediaCodec 播放 scrcpy 视频流

我们今天要实现的是安卓通过scrcpy-server显示另一台安卓的屏幕
要实现的是从自定义协议(scrcpy-server)中播放视频,所以直接用现成的视频播放器是不现实的。

前言

在动手写前,从各个博客补了一些知识,几乎每一篇在实现 MediaCodec 解码播放的时候都会说,这个通常和 MediaExtracter 配合使用,然后具体解码就是借助 MediaExtracter 解码到 MediaCodec 中,找了很久没找到纯 MediaCodec 解码播放视频的。

阅读更多

安卓ROM开发开篇

大致分一下系列来讲述如何基于安卓ROM进行开发。

  • 刷机包简介
  • br 文件解压
  • dat文件解压
  • img 文件解压

实现MIUI+的多任务投屏

前言

MIUI+ 是小米出的解决生态鸿沟的 PC 与小米手机
MIUI+ 刚出来的时候,我觉得其大致原理和 Scrcpy 差不多,无非是将类似于 scrcpy-server 的东西集成到了 MIUI 系统内,投屏万变不离其宗,录屏,推流,客户端拉流,渲染,处理指针数据,但是在自己体验的时候发现,延迟真的高!,不对,是有一些新的玩意,当时也觉得挺黑科技的,阴差阳错直到最近才了解其中的原理。

偶然翻 scrcpy 的 issue 和刷酷安发现的

阅读更多

深入理解 ADB 协议 - 安卓使用 ADB 实现

缝缝补补,还是把这篇文章写完了。

前言

整体感受一下这篇文章研究的东西最后带来了啥。
安卓免 ROOT 实现 ADB 连接另一台安卓,这里的手环是 ow2。
camera1
安卓免 ROOT 给另一台安卓安装 app
camera2

ADB简单介绍

ADB 是安卓调试桥(Android Debug Bridge),为了实现分布式(这个分布式的确是官方的词儿),分离出了 ADB server,ADB server 与安卓设备上的 adbd 进程通信。
分离的这层 ADB server 有什么用呢?例如 PC A 连接了10台安卓,此时 ADB server 运行在 PC A 上,同局域网的其他 PC 只需要通过 PC A 的5037端口即可调试10台安卓,这就是 server 带来的好处。
这个实际参数就是adb -L

1
-L SOCKET  listen on given socket for adb server [default=tcp:localhost:5037]
阅读更多
Flutter 终端模拟器 - 写一个 Termux,开源篇

Flutter 终端模拟器 - 写一个 Termux,开源篇

废话

最近社区输出越来越少了,实习回到家,一般8.30多吧,收拾收拾,电脑一开,一般就会写过12点,有时候累了是完全无心情写。自己写东西时间已经极少了,还得负责学校一个项目的后台,一个web项目,所谓的“能者多劳”,还有学校里面杂七杂八的学分上的事要处理,感觉这样时间长了,估计得直接转行。

这个终端的灵感主要来自 termux 和 termius 还有很早的 Android Terminal,起初想做一个和 termius 相似的产品,估计也是心有余而力不足了。(有生之年一定弄个!)

该终端涉及到的各部分细节以及相关技术难点,个人还是决定比较多,我就不挨个将其中的东西拿来解析了,这篇主要是介绍这个使用 Flutter 框架开发的终端模拟器以及开源相关的内容。

还有很多得之后才能写上,大家感兴趣的先随便玩玩。

阅读更多

Flutter终端模拟器-Linux源编译

概述

本文记录的经验适用于以下需求

  • 1.fork 了 termux 仓库,想要改包名编译集成到自己的项目。
  • 2.完全的自己开发了一个终端模拟器。
阅读更多

Dart-aqueduct框架后台开发(2)-用户管理,swagger文档生成

引言

本章主要介绍通过 dart 的 aqueduct 框架来实现简单的用户管理以及标准的 OAuth2.0 验证。笔者会尽可能的遵循restful规范。

由于 aqueduct 使用到了注解,而注解是会用到反射的一个东西,目前个人在尝试中发现用到了 dart:mirro 就无法通过 dart2native 进行 aot 编译来提高运行性能。

阅读更多