Pig Cat

Full-Stack, Android, AI

IDE Eval Reset忘了重置进不去怎么办

偶尔探索一下,就能解决全网问题。

问题 我相信很多白嫖怪都知道目前JB全家桶“极为先进”的使用方法——其实就是无限重置30天(IDE Eval Reset)。具体使用方法就不赘述了。 这里会出现一个问题,尤其是针对电脑上安装了多款JB家的IDE用户来说(比如我就是,IDEA、PyCharm和CLion都在使bai用piao),如果超过30天未打开其中某个IDE进行试用重置,那么你就会发现打不开了,要求你补充License,而...

Android Shortcut启动导致其他Activity销毁问题

小问题而已。

问题 我们都知道,从API 25开始,Android加入了类似3D Touch一样的功能,即长按桌面图标可以弹出快捷方式菜单(最多4个)。早期国产系统的桌面Launcher并没有积极适这一功能,所以各大应用也懒得做,后来才逐渐完善。目前包括微信、支付宝等都可以长按弹出快捷方式,支付宝更是支持动态配置。 开发文档直接看官方的就行:https://developer.android.com/g...

聊一聊MIUI最近更新的原子内存

是黑科技还是噱头?

前言 比起最近雷布斯的个人演讲,其实我更好奇MIUI 12.5增强版(超级Bug-list修复版)推出的那四个性能优化项目: 焦点计算 - 处理器智能调度机制 原子内存 - 精细化内存管理机制 液态存储 - 文件存储管理机制 智能均衡 - 对旗舰硬件性能的智能调配 作为技术爱好者,这个“原子内存”还真是提起了我的兴趣,因为其他三项还算比较好理解。毕竟内存管理这件事,是操作...

最简单改变状态栏文字及背景颜色的方法

不要再吃老本了。

问题 我们知道,Android的状态栏(StatusBar)是可以由开发者自行更改背景颜色的,至于文字颜色,不能直接由自己修改色值,而是黑白两种颜色,对应的是Light和Dark两种全局主题模式。 为了良好的用户体验,我们在状态栏背景为深色时,需要给予白色字体,反之亦然。比如这样: 然而,有些时候我们在Light Mode下并不需要黑色字体,就需要自己手动修改了。 方法 以前我们修改状态栏...

安装Anaconda后终端base前缀问题

杂七杂八。

问题 最近想训练个小模型来用用,于是乎我在macOS安装 Anaconda | Individual Edition ,选择的是图形界面安装(64-Bit Graphical Installer),整个过程很顺利,一路下一步就行了。 然鹅,安装完之后,我发现我的终端命令行前缀出现了一个base,像这样: (base) -> ~ 这就很无语。 原因 猜测原因应该是Anaconda安装后...

我的2021 Google IO大会之旅

一次特别的会议。

2021年的 Google I/O大会 已经圆满闭幕,我们从下面几条官方的FAQ可以看出今年大会与往届有所不同: 2021年Google I/O大会主要面向哪些人群? 全球范围内对Google技术感兴趣的开发者都应关注此次大会,以便了解最新的产品发布、Google专家的行业洞见,并进行实践性学习。 Google I/O 2021大会的举办时间和地点? 2021年开发者大会将于5月18...

忘了买电脑音响?手机来替代!

指条明路。

背景 前段时间把吃灰的台式电脑搬出来用,我竟然忘了它没配音响,可我现在就想玩游戏听音乐,也不想买音响,怎么办?除此之外,我相信很多公司的办公台式电脑也是没有带音响的,老板告诉你:上个班还要听啥响?好好搬砖就行了。但有时候加班到四下无人的时候,确实会产生一种想要外放音乐的欲望。 此情此景,我摸了摸我的双扬声器小米10,不仅感叹道:你就是个天生的便携音响呀!于是,我开始寻找让手机和电脑通信并传输...

QQ闪照保存小妙招

指条明路。

QQ闪照 在IM工具中,QQ较之于微信一直是比较前卫的,毕竟年轻用户居多。比如QQ闪照就是一个有趣的功能,而且已经推出很久了(记得大概是V6.5左右):不管单聊还是群聊都可用,在发送图片时勾选闪照即可,发送成功后所有人都只能看5秒,时间结束后图片被“销毁”,UI层面被打上厚厚的马赛克。 这个功能一经推出,不少老司机可谓是既爱又恨,我们暂且不说其功能意义和影响。但是相信大家都思考过,怎么把闪...

macOS备份迁移系统偏好设置

指条明路。

场景 不知道诸位在使用macOS时是否遇到过这样的场景:有两台电脑,想把旧电脑中的系统偏好设置原封不动地迁移(导入)到新电脑中,只关心这些设置,不想迁移其他东西。 解决 方案1:官方迁移助理 其实官方提供了一个方案,叫“迁移助理”。具体操作步骤可见文档:将内容迁移到一台新的 Mac 上,不仅可以迁移系统设置,还包括整个用户帐户下的文件、应用程序等。 如图,我们可以在此步骤中只选择“系统与网...

Binder机制学习指北

指条明路。

挖坑待填,未完待续…… 参考 写给 Android 应用工程师的 Binder 原理剖析 彻底理解Android Binder通信架构 Android跨进程通信:图文详解 Binder机制 原理 Android Bander设计与实现 - 设计篇 Binder十万个为什么 一次Binder通信最大可以传输多大的数据?

源码茶舍:App进程创建中的poll机制

深入研究。

挖坑待填,未完待续…… 系列汇总 转眼间几年过去了,“源码茶舍”也算是我写的第一个系列文章,最初取这个名字的意思便是“像喝茶一样品味AOSP源码”,喝茶讲究什么?当然是悠闲。因此,此系列的文章一般都不长,且大多数都是我平时偶尔遇见的问题或者趣点,总之是比较随意的,研究深度是在我能力范围内尽可能深入。 希望以后还能一如既往地更新这个系列,疏漏错误之处还请大家指点。至此汇总一下往期所有: 源码...

微信Android端如何安全降级

给你后悔药。

前言 最近微信8.0开始灰度更新,小龙给大家整的新功能我就不赘述了。有不少小伙伴等不及灰度,也开始自行下载安装。 微信Android端内测下载链接(复制后通过微信打开即可):https://szsupport.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/android_exp__index 然而,“后悔药”无论何时都是有...

InputMethodManager内存泄漏已成为历史

大人,时代变了。

历史问题 相信做过很多业务开发的同学都遇到过Android应用的内存泄漏问题,虽然大部分泄漏都是我们自己菜导致的,但实际上系统服务也有可能出现内存泄漏。毕竟,代码都是人写的,AOSP也不是完美无瑕的。 说到系统服务,在处理文本输入的时候,我们以前经常会看到这样的泄漏: 这里大家也可自行搜索了解,大致上就是因为InputMethodManager(下简称IMM)实例内部会持有View,而Vi...

源码茶舍之没有epoll就没有Handler

探索发现。

Handler,英文释义:处理者,处理程序。他就是Android系统中的打工人,背负着传递消息的重任。很多人在第一次尝试去阅读framework源码时,可能也是从Handler消息机制开始的,我们会发现源码的很多地方都用到了Handler。然而,他好像并没有我们想象的那么简单,如果我们要深入探索的话,可以一直追溯到Linux内核。 预备 本文分析源码均基于API 29,来源于官方AOSP...

Mace-micro引擎编译与测试

移动端AI计算框架。

官方简介 Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台(支持Android, iOS, Linux, Windows)优化的神经网络计算框架。 主要从以下的角度做了专门的优化: 性能 代码经过NEON指令,OpenCL以及Hexagon HVX专门优化,并且采用Winograd算法来进行卷积操作的加速。 此外,还对启动速度进行了专门的优化...

给MIUI开发一个5G快捷开关

鼓捣鼓捣。

早年4G设备刚刚普及的时候,我记得通知栏还有专门的快捷开关来控制4G/3G网络的切换,和WiFi开关、GPS开关类似。现在5G来了,我发现MIUI没有这种开关了,要打开系统设置到很深的入口里去开关5G,这就很不爽了。毕竟5G还是很耗电的,也不是所有地方都有基站,平时完全需要一个快捷开关来自己控制。 思路 从Android N开始,系统支持开发者自己实现QuickSettings,说白了就...

借助acme.sh免费开启网站的HTTPS(Apache2环境)

后知后觉。

本文仅记录无套路搞定网站HTTPS的方法。网上搜索的资料实在太杂乱了,就连acme.sh官方文档也不够详尽。 主要就三步:生成证书、安装证书、配置SSL。下文以Ubuntu 16.04(版本不重要) + Apache2为例。默认已经安装crontab、openssl等基本工具。网站目录也是默认的 /var/www/html/ 。 生成证书 1、先做准备工作: # 进入服务器的用户(一般是...

Magisk与EdXposed框架安装实践(Android P及以上)

鼓捣鼓捣。

记得初中的时候还在用Android 2.3,高中开始刷机,每个月都去追论坛大佬的自定义精简ROM,不亦乐乎,这一晃都过了快十年了。从以前旧版Android(支持到8.x)的Xposed到现在的EdXposed、Magisk等玩机框架,大佬些的脚步从未停歇。模块开发生态也好了很多(得益于Github及各种文档)。不过由于现在ROM厂商越来越深度的定制和限制(当然也是考虑到普通用户的安全),RO...

等差数列异或和的小规律

后知后觉。

背景 异或(xor,运算符号^):按位计算,同0异1,1 ^ 0 = 1 ,1 ^ 1 = 0 ,如此。 现定义等差数列 1, 2, ... , n 的 异或和 为 f(n) = 1 ^ 2 ^ ... ^ n ,求f(n)的值。 实现 我们很容易想到质朴的实现如下: int func(int n) { int xor_sum = 0; for (int i = 1; i &...

Kotlin变长参数的一些小坑

见微知著。

Java中的变长参数 先来看看Java中的变长参数,很简单,为了后面的对比,我们做进行一个连续的传参: import java.util.Arrays; public class TestVarargs { public static void main(String[] args) { test1("1", "2"); } private...