2020年4月

前几天在红米K20上用APKPure更新Twitter,MIUI提示安装需要关闭MIUI优化,但关闭后还是无法安装,就想办法试试用电脑安装。
电脑上操作,到APKPure网站上下载安装包之后,发现是个下xapk的包,官方解释是“Multiple APKs”,即多个apk组成的安装包。
这个安装包无法直接用adb安装,解压之后有多个apk,看文件名是一个主程序apk和多个配置用的apk
Snipaste_2020-04-20_22-08-18.png
adb只能安装主程序apk,其他apk无法安装,提示是部分安装包不支持,而已安装的主程序打开闪退,无法使用。
查看adb的帮助,发现有一个install-multiple的新功能,应该是对应这种情况的。google一圈之后终于搞明白了该命令的用法:
用这个命令把主程序apk和需要的配置apk一起安装即可。在Twitter这个例子中,我选择了主程序apk、cpu架构配置apk、高分屏配置apk和中文支持apk一起安装,其他语言配置包不需要就不装了。

     adb install-multiple .\com.twitter.android.apk .\config.armeabi_v7a.apk .\config.xhdpi.apk .\config.zh.apk

Snipaste_2020-04-20_22-18-36.png

原理:来自 Google 的云端优化,这个技巧让你的应用秒开

V2

获取第三方应用包列表,存入变量:

    $PackageList = adb shell pm list packages -3

新建计数变量:

    $Index = 1

遍历每行应用包名,编译:

    foreach($PackageListLine in $PackageList)
    {
        $PackageName = $PackageListLine.Remove(0, 8)
        echo("Compiling " + $Index++ +"/" + $PackageList.Count + " " + $PackageName)
        adb shell cmd package compile -m speed -f $PackageName
    }

输出效果:
Snipaste_2020-04-20_21-40-54.png


V1

获取第三方应用列表:

    adb shell pm list packages -3 > packages.txt

Powershell中运行adb,批量编译第三方应用:

    foreach($line in Get-Content("packages.txt"))
    {
        $PackgeName = $line.Remove(0,8)
        echo("compiling " + $PackgeName)
        adb shell cmd package compile -m speed -f $PackgeName
    }

删除临时文件:

    Remove-Item("packages.txt")

在使用微软双拼的环境下

1.扩展词库

double_pinyin_mspy.custom.yaml(输入法自定义配置文件,其他输入法换为输入法名.custom.yaml)中加入下面代码:

patch:
  # 載入朙月拼音擴充詞庫
  "translator/dictionary": luna_pinyin.extended

luna_pinyin.extended.dict.yamlluna_pinyin.dict.yamlluna_pinyin.hanyu.yamlluna_pinyin.poetry.dict.yamlluna_pinyin.cn_en.dict.yaml五个文件放入用户文件夹。
luna_pinyin.extended.dict.yaml引用了其他四个词库文件。
来源:https://github.com/rime-aca/dictionaries

2.双拼不展开成全拼

double_pinyin_mspy.custom.yawl(输入法自定义配置文件,其他输入法换为输入法名.custom.yawl)中加入下面代码:

patch:
 #不展开成全拼
 translator/preedit_format: []

来源:https://github.com/rime/squirrel/issues/261

3.识别字母+数字的用户名

default.custom.yaml中加入如下代码:

# 輸入 rime 之後,再輸入任意一個數字,則立即識別爲西文輸入
patch:
  recognizer/patterns/rime123: "^rime[0-9]+$"

来源:https://gist.github.com/lotem/3076166

4.某些程序中不使用中文输入法

weasel.custom.yaml中加入如下代码:

patch:
 app_options/bf2cn.exe:  #程序
  ascii_mode: true

来源:rime定制指南

什么值得买上看到一篇文章,群晖VideoStation支持DST、EAC3、TrueHD。这篇文章是从别处抄来的。
但是这个作者要么对linux系统不大熟悉,要么群晖或VideoStation更新了,文章里有不少问题,主要是要替换的文件路径不对,如果按照他的命令操作的话会出问题。
下面说明一下亲测过的正确操作。

环境:

  1. 硬件:蜗牛星际,黑群晖DS 918+
  2. 软件:DSM 6.2.1-23824 Update 6,VideoStation版本 2.4.7 - 1603

思路:

VideoStation中的ffmpeg不支持DST、EAC3、TrueHD,用支持DST、EAC3、TrueHD的ffmpeg替换掉。

操作步骤:

安装支持DST、EAC3、TrueHD的ffmpeg

安装包在https://github.com/th0ma7/synology/tree/master/packages,下载下来对应的安装包,DS918+对应的是ffmpeg_apollolake-6.1_4.2.2-28.spk
登录DSM,套件中心,手动安装,上传并安装。

备份、替换文件

SSH登录DSM,并用下面命令切换到root:

    sudo -i

切换到VideoStation目录,备份文件:

    cd /var/packages/VideoStation/target/
    sed -i'-BACKUP' -e 's/eac3/ZAAP/' -e 's/dts/ZAP/' -e 's/truehd/ZAPZAP/' lib/libsynovte.so
    mv bin/ffmpeg bin/ffmpeg.orgi
    mv bin/ffprobe bin/ffprobe.orgi
    mv bin/vainfo bin/vainfo.orgi

替换文件:

    echo "H4sICEoigl4AA2ZmbXBlZwCtU8tOwzAQvO9XLEmkPlAwrRCHVokqBOILOEUVctN1YtE8FFumEvDvOA9KSQInfEhsZ2ZnPN64F2wnc7bjKgWws8ChI8XIDK9YyeMXnpBiQmQlJUzzKiHd4NsdB8DF+4e7p0egOC3Q8TYOhiEynZUd5OpQJACWqILpDF5TeSCMIvRc9BON17jdwr6AmCuy7IWDMge0wzdlVQgLnjVLO1Qqhf5a1PUug6njH5e3Nx3SaQqc8Ot1V0iMl3CNCLxpZ9sKv6OiPfqEE3veosq4DnKzWF7NVcwP9Gw4LyU7nyeTDu2x1RmBTU56jUyXT7cciGoi9Hk/sf9zAz/ttNJGrDDyjNiO3lY/YyPqaO1zkK0cjzYrjKSgPuCgluzdUi+e1l7Lj7zm/afHzsh81hfqdQIpHkPrcV/kBKBIo+9bL281I9psP/q97Nk2/7WhG8TI/jdpGYaDv8A9fYZPjqtrMXcDAAA=" | base64 -d | gunzip > bin/ffmpeg
    ln -s /var/packages/ffmpeg/target/bin/ffprobe bin/
    ln -s /var/packages/ffmpeg/target/bin/vainfo bin/
    sudo sed -i'-BACKUP' -e 's/eac3/ZAAP/' -e 's/dts/ZAP/' -e 's/truehd/ZAPZAP/' lib/libsynovte.so

说明一下,ffmpeg替换成了一个脚本,脚本里带有输出日志,便于调试,而ffprobe和vainfo则直接建立符号连接。

调整权限:

    cd /var/packages/VideoStation/target/
    chmod +x bin/ffmpeg
    chmod +s bin/ffmpeg
    chown root:VideoStation bin/ffmpeg

测试

DSM中打开VideoStation,播放带DST、EAC3、TrueHD音频的视频。
SSH中打开日志文件,查看输出:

    tail -f /tmp/ffmpeg.log

Snipaste_2020-04-04_16-27-08.png
实测打开1080P的高码率DTS或EAC3的视频,CPU占用率约20%。