0%

aardio v40.14.3

同步管道

1
2
3
4
5
6
7
8
9
10
11
12
13
import process.popen

var pipe = process.popen('cmd')

pipe.logResponse(function(all, out, err){
/**
* @param all 所有输出
* @param out 正常输出
* @param err 错误输出
*/
console.log(all)
})
pipe.write('echo Hello aardio!\r\n')

注意: 每行命令结尾必须加\r\n才能被执行,这是Windows的规范

异步管道

异步管道采用form.setTimeout方法,常规thread.invoke方法容易报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import process.popen

var pipe

mainForm.setTimeout(function(){
pipe = process.popen('cmd')
pipe.logResponse(function(all, out, err){
/**
* @param all 所有输出
* @param out 正常输出
* @param err 错误输出
*/
console.log(all)
})
pipe.write('echo Hello aardio!\r\n')
})

pipe.write('echo Hello aardio!\r\n')

注意: 每行命令结尾必须加\r\n才能被执行,这是Windows的规范

1
2
3
4
5
import gdip

function toJPEG(buf, quality) {
return gdip.bitmap(buf).saveToBuffer('*.jpg', quality)
}
参数 描述
buf 图片二进制数据
quality 清晰度(最大为100)

返回压缩后的二进制(Buffer)数据

创建项目

项目最好是安卓5.0(21)及以上,不然会出现各种各样的问题

引入依赖

引入 GeckoView

注意: 直接在 build.gradle 里面引入可能会有问题,所以我们选择手动下载
进入 Maven Repository: org.mozilla.geckoview » geckoview 下载需要的 GeckoView 版本的 aar 文件
然后放进你的项目的 app/libs 里并引入

1
implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])

引入 SnakeYAML

最新版可以直接引入最新版本的 YAML, 如果你的 GeckoView 版本较低(如108), YAML 的版本也要低一点(如1.27)

1
implementation "org.yaml:snakeyaml:2.4"

引入 Support-v4 (非必要)

如果出现 SimpleArrayMap 类未找到的问题才需要引入,一般是不需要
并且最好是用19.1.0版本

1
implementation "com.android.support:support-v4:19.1.0"

简单使用

创建 GeckoView 实例

在你的 Layout 文件中创建 GeckoView 或动态创建

1
2
3
4
<org.mozilla.geckoview.GeckoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/geckoView"/>

初始化 GeckoView

导入包

1
2
3
import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;

创建私有字段

1
2
3
GeckoSession session;
GeckoView gecko;
GeckoRuntime runtime;

初始化

1
2
3
4
5
6
7
session = new GeckoSession();
gecko = findViewById(R.id.geckoview);
runtime = GeckoRuntime.create(this);

session.setContentDelegate(new GeckoSession.ContentDelegate(){});
session.open(runtime);
gecko.setSession(session);

载入网址(Uri)

1
session.loadUri("https://blog.1503dev.top/");

更多用法见参考

参考

安装 Lip

前往 github.com/futrime/lip/releases 下载 Lip 的安装包并安装
安装后逐行执行以下命令

1
2
lip config GoModuleProxyURL https://goproxy.cn
lip config GitHubMirrorURL https://github.bibk.top

安装 LeviLamina

进入你的服务器根目录
安装最新版

1
lip install github.com/LiteLDev/LeviLamina

自定义版本

1
lip install github.com/LiteLDev/LeviLamina@版本号

版本号不需要带 v,具体 LL 版本对应的游戏版本请在更新日志中查找

安装 LegacyScriptEngine

LegacyScriptEngine 是加载 JS, Lua 插件的关键
进入你的服务器根目录

1
lip install github.com/LiteLDev/LegacyScriptEngine

参考

id 能力 描述
0 build 建造
1 mine 挖掘
2 doorsandswitches 开门和使用开关
3 opencontainers 打开容器(箱子等)
4 attackplayers 攻击玩家
5 attackmobs 攻击生物
6 op 使用OP命令(未证实)
7 teleport 传送(使用tp命令)
8 invulnerable -
9 flying 飞行中
10 mayfly 可飞行
11 instabuild -
12 lightning -
13 flySpeed 飞行速度(0.05)
14 walkSpeed 移动速度(0.1)

代码

cloneall.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir $1_repos
cd ./$1_repos/
echo $(date "+%H:%M:%S 获取$1的仓库列表到 $1_repos/clone_list.temp")
rm -f clone_list.temp
rm -f clone_list.txt
rm -f clone.sh
curl "https://api.github.com/users/$1/repos?per_page=100&&page=1" | grep -w clone_url >clone_list.temp
echo $(date "+%H:%M:%S 过滤链接到 $1_repos/clone_list.txt")
grep -o 'https://[^"]*' clone_list.temp > clone_list.txt
cat clone_list.txt
rm -f clone_list.temp
echo $(date "+%H:%M:%S 生成批处理文件到 $1_repos/clone.sh")
sed "s/^/echo \$(date \"+%H:%M:%S 正在拉取下一个仓库\")\ngit clone --depth=1 /" clone_list.txt > clone.sh
echo $(date "+%H:%M:%S 开始拉取到 $1_repos/")
bash clone.sh
rm -f clone.sh
cd ..
echo $(date "+%H:%M:%S 拉取完成,在 $1_repos/")

使用方法

执行 ./cloneall.sh 用户 就会把 用户 的100个仓库拉取到 用户_repos 文件夹里

例如 ./cloneall.sh TheChuan1503

参考

小米/红米手机前往申请解锁小米手机

注意

解BL锁之前必须在开发者选项打开OEM解锁和ADB调试
一定要记住手机登录的账号和密码,并且确定账号绑定的手机号可用,否则可能会开机卡账号锁
会开机卡账号锁!
会开机卡账号锁!!

一加

1
adb reboot bootloader

进入后可能会识别不到设备,参见一加全能工具箱安装adb和fastboot驱动教程 - 一加全能盒子 | 工具箱
然后

1
fastboot flashing unlock

手机迅速按照指示按下对应按键(一般是音量加)确定解锁

安卓开发

先获取电池管理器

Java
1
BatteryManager bm = (BatteryManager) getSystemService(BATTERY_SERVICE);

以下为 安卓5.0(SDK21) 及以上的Method

剩余容量(mAh) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER);

平均电流(mA) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_AVERAGE);

瞬时电流(mA) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CURRENT_NOW);

电量(百分数) int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

以下为 安卓8.0(SDK26) 及以上的Method

充电状态 int

Java
1
bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_STATUS);
  • BatteryManager.BATTERY_STATUS_UNKNOWN
    状态未知
  • BatteryManager.BATTERY_STATUS_CHARGING
    正在充电
  • BatteryManager.BATTERY_STATUS_DISCHARGING
    正在放电(耗电)
  • BatteryManager.BATTERY_STATUS_NOT_CHARGING
    没有充电
  • BatteryManager.BATTERY_STATUS_FULL
    已充满(在充电状态)

ADB

adb shell
1
dumpsys battery

返回示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Current Battery Service state:
AC powered: false - 交流电源未连接
USB powered: true - USB电源已连接
Wireless powered: false - 无线充电未激活
Max charging current: 500000 - 最大充电电流为500000微安
Max charging voltage: 5000000 - 最大充电电压为5000000微伏
Charge counter: 1400000 - 电池充电计数器,表示电池自上次充满电以来的总充电量
status: 2 - 电池状态为充电中
health: 2 - 电池健康状况良好
present: true - 电池存在
level: 28 - 电池电量百分数为28
scale: 100 - 电量百分比的最大值为100
voltage: 3872 - 当前电池电压为3872微伏
temperature: 348 - 电池温度为348/10度(一般温度值需要除以10)
technology: Li-poly - 电池类型为锂聚合物电池

参考