Java8&11并存

修改 ~/.bash_profile文件:

export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)

alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'

default to Java 11

java11

参考: https://blog.csdn.net/yuexiaomao/article/details/111057654

https://docs.oracle.com/en/java/javase/11/install/installation-jdk-macos.html#GUID-7EB4F697-F3D1-40EA-ACDF-07FA90F02D57

Android GlobalKey配置

在TV定制系统中,你是不是会碰上过这样的需求,通过遥控器按键一键触发某些操作或者打开某个页面,这个需要怎么实现呢?

今天就给大家带来其中一种实现方案:GlobalKey

使用pk8和pem生成keystore

platform.pk8platform.x509.pem 格式的系统签名转换为 mykey.keystore 格式 需要系统中有 openssljdk

1)使用 platform.pk8 生成 key.pem 文件

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out key.pem

2)使用 platform.x509.pemkey.pem 生成 platform.p12 文件

openssl pkcs12 -export -in platform.x509.pem -inkey key.pem -out platform.p12 -password pass:android -name mykey

其中签名的 keyAlias 是 mykey,密码是 android

问题集锦

集中管理Android中的疑难杂症。

Android resource linking failed

Android resource linking failed
AAPT: D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2781: error: resource android:attr/fontVariationSettings not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:2782: error: resource android:attr/ttcIndex not found.
D:\developer\androidproject\MyApplication\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3207: error: resource android:attr/textFontWeight not found.
error: failed linking references.

这种情况一般是项目配置导致的,检查下 compile sdk 的版本是否一致

Yuv2Rgb

RGB888 to YUV

将 RGB888 转换为 YUV 4:4:4 对于计算机 RGB 输入和8位 BT. 601 YUV 输出,我们相信上一节中给出的公式可以合理地近似如下:

Y = ( (  66 * R + 129 * G +  25 * B + 128) >> 8) +  16
U = ( ( -38 * R -  74 * G + 112 * B + 128) >> 8) + 128
V = ( ( 112 * R -  94 * G -  18 * B + 128) >> 8) + 128

这些公式使用不超过8位 (无符号) 精度的系数生成8位结果。 中间结果将要求最高16位的精度。

Android TV RecyclerView Item Move

在 Android TV 中如何实现 RecyclerView item 间的位置互换?

这里主要利用 RecyclerViewItemAnimator 进行实现交互效果,以及利用 AdapternotifyItemMoved 方法实现数据更新。

因为是 Android TV,主要的交互方式是遥控器,所以无法利用 ItemTouchHelper 进行协助实现位置交互的功能,那主要从以下几步进行:

Youtube UA

目前 Youtube tv 网站下线,但是对于某些有合作的 TV 来说,这个网站是支持的,利用特殊的 UA,下面罗列了一些 Smart tv 相关的UA列表

支持倍数播放: Amazon Fire Stick

Mozilla/5.0 (Linux; Android 5.1.1; AFTT Build/LVY48F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/49.0.2623.10