Android Studio 3.5.2最小化接入weex 0.28.0实践

目前在尝试使用weex,但是在搭建基础的最小化项目的时候,官方文档描述的相当佛系,导致搭建出来的项目没办法正常运行。

下面我们探讨一下,使用Android Studio 3.5.2新建一个项目,实现最小化接入weex 0.28.0实践过程。

官方文档要求在项目的build.gradle 中增加如下内容:

但是实际上,由于weex 0.28.0的调整,以前版本自动引入的facebook提供的JS引擎js-android,现在被修改为需要手工引入,但是文档没有清晰的指出这个问题,导致运行的时候,会由于找不到libjsc.so而导致WXSDKEngine初始化失败。

官方提供了一个download_jsc.gradle的脚本解决这个问题(这个脚本的功能仅仅是下载libjsc.so ),需要在项目的 build.gradle 的头部增加这个脚本文件的引用:

如果下载不成功,也可从本站下载

完成后的build.gradle中完整内容如下:

接下来,就是具体的代码部分了,如下,需要自定义一个Application类,在Application的初始化部分初始化WXSDKEngine,代码如下:

接下来,就是具体的Activity内容展现代码部分了,代码如下:

需要注意的是WXSDKEngine是异步初始化的,导致在首次调用的时候,可能会因为没有正常初始化而出现异常,因此需要等待初始化完成。

具体的例子项目在这里下载 Weex

鉴于开源项目经常性找不到文件,因此记录下来 http://dotwe.org/raw/dist/38e202c16bdfefbdb88a8754f975454c.bundle.wx 这个文件里面的内容:

参考链接


html数学公式显示库MathJax的使用

MathJax是一个开源的web数学公式渲染器,由JS编写而成。MathJax允许你在你的网页中包含公式,无论是使用LaTeX、MathML或者AsciiMath符号,这些公式都会被javascript处理为HTML、SVG或者MathML符号。

引入CDN

只需要在头部添加下面这句,就可以成功引入CDN

内联config说明

官方提供了一个能让我们内联一个配置选项的功能,要想让这个内联配置生效就得放在
CDN引入之前。如下

MathJax 2.x 跟 MathJax 3.x 的配置信息是不同的,这部分的配置转换可以通过MathJax-demos-web中的v2 to v3 Configuration Converter

上面的配置信息,转换后的结果如下:

其中MathJax.Hub.Config()里的配置选项是重点,本例表示用来识别行内公式,$来识别行间公式。

书写公式

对应的公式在html文件中写法如下

显示效果

WordPress上实现上述功能,最简单的方式是安装 Simple Mathjax 插件即可。

注意目前(2022/03/16)的 MathJax 3.x 还不支持多语言,不支持公式自动换行(automatic line breaking)

参考链接


Compatibility Between SPIR-V Image Formats And Vulkan Formats

SPIR-V Image Format Compatible Vulkan Format

Rgba32f

VK_FORMAT_R32G32B32A32_SFLOAT

Rgba16f

VK_FORMAT_R16G16B16A16_SFLOAT

R32f

VK_FORMAT_R32_SFLOAT

Rgba8

VK_FORMAT_R8G8B8A8_UNORM

Rgba8Snorm

VK_FORMAT_R8G8B8A8_SNORM

Rg32f

VK_FORMAT_R32G32_SFLOAT

Rg16f

VK_FORMAT_R16G16_SFLOAT

R11fG11fB10f

VK_FORMAT_B10G11R11_UFLOAT_PACK32

R16f

VK_FORMAT_R16_SFLOAT

Rgba16

VK_FORMAT_R16G16B16A16_UNORM

Rgb10A2

VK_FORMAT_A2B10G10R10_UNORM_PACK32

Rg16

VK_FORMAT_R16G16_UNORM

Rg8

VK_FORMAT_R8G8_UNORM

R16

VK_FORMAT_R16_UNORM

R8

VK_FORMAT_R8_UNORM

Rgba16Snorm

VK_FORMAT_R16G16B16A16_SNORM

Rg16Snorm

VK_FORMAT_R16G16_SNORM

Rg8Snorm

VK_FORMAT_R8G8_SNORM

R16Snorm

VK_FORMAT_R16_SNORM

R8Snorm

VK_FORMAT_R8_SNORM

Rgba32i

VK_FORMAT_R32G32B32A32_SINT

Rgba16i

VK_FORMAT_R16G16B16A16_SINT

Rgba8i

VK_FORMAT_R8G8B8A8_SINT

R32i

VK_FORMAT_R32_SINT

Rg32i

VK_FORMAT_R32G32_SINT

Rg16i

VK_FORMAT_R16G16_SINT

Rg8i

VK_FORMAT_R8G8_SINT

R16i

VK_FORMAT_R16_SINT

R8i

VK_FORMAT_R8_SINT

Rgba32ui

VK_FORMAT_R32G32B32A32_UINT

Rgba16ui

VK_FORMAT_R16G16B16A16_UINT

Rgba8ui

VK_FORMAT_R8G8B8A8_UINT

R32ui

VK_FORMAT_R32_UINT

Rgb10a2ui

VK_FORMAT_A2B10G10R10_UINT_PACK32

Rg32ui

VK_FORMAT_R32G32_UINT

Rg16ui

VK_FORMAT_R16G16_UINT

Rg8ui

VK_FORMAT_R8G8_UINT

R16ui

VK_FORMAT_R16_UINT

R8ui

VK_FORMAT_R8_UINT

参考链接


Compatibility Between SPIR-V Image Formats And Vulkan Formats

Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本

一、通过apt-get安装指定版本

二、查询指定软件有多少个版本

说明:在Linux用这个查询并不能完全的把所有版本都列举出来,因为每个版本都与系统版本和CPU架构有关,比如一个软件支持Ubuntu系统的16.04的CPU架构为amd64的版本只有1.0和1.2,其余都不支持,所以列举时就只有两款。

列举版本列表:

0、通过网站搜索:

https://packages.ubuntu.com/

1、

将列出所有来源的版本。如下输出所示:

madison 是一个 apt-cache 子命令,可以通过 man apt-cache 查询更多用法。

2、

将列出所有来源的版本。信息会比上面详细一点,如下输出所示:

policy 是一个 apt-cache 子命令,可以通过 man apt-cache查询更多用法。

3、

4、

说明:这个命令只是模拟安装时会安装哪些软件列表,但不会例举出每个软件有多少个版本

5、

参考:https://manpages.debian.org/unstable/aptitude/aptitude.8.en.html

6、

说明:列举出所有版本,且能查看是否已经安装。还可以通过apt-show-versions -u <<package name>>来查询是否有升级版本。

参考:http://manpages.ubuntu.com/manpages/trusty/man1/apt-show-versions.1p.html

7、

8、

单个详情:

1、

说明:查询指定包的详情,不管是否已经安装。

2、

说明:效果和上面基本一致,但是结果是列表详情展示,会提示是否已经删除了之后还有依赖包没有删除等。

3、

说明:必须是安装的包才能显示详情。

4、

说明:同上,效果一致。

使用技巧:

1、可以在查询后面带上一些参数来实现筛选

参考链接


Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本

WD MyCloud编译golang/git-lfs

按照How to successfully build packages for WD My Cloud from source中的介绍,搭建完成WDMyCloud的编译环境

整个 WD MyCloud 的编译项目,可以直接在树莓派中进行编译。只是编译4KB分页(主要用于编译过程)的高版本应用的时候,需要在 raspbian-wheezy 系统中进行编译。

在树莓派中编译 WD MyCloud 代码的时候,由于都是 ARM 环境,因此,不需要 QEMU 的介入,以前由于 QEMU 导致的问题可以规避。

推荐在树莓派4B版本上搭建编译环境,效果来看,速度还是不错的。

这个问题产生的原因是在qemu中创建线程/进程的时候,要求增加CLONE_SYSVSEM标志,否则会出现异常。 go在创建线程/进程的时候,没有指定这个标记。解决方法就是修改src/pkg/runtime/os_linux.c中的void runtime·newosproc(M *mp, void *stk)函数,在flag中增加CLONE_SYSVSEM标志。

这个问题解决起来比较复杂,我们在x86下面直接进行交叉编译的时候,是没办法通过编译的,我们可以通过树莓派下进行编译。树莓派使用2015-05-05-raspbian-wheezy版本的镜像来进行编译。

树莓派这个版本的系统问题在于  wheezy  的源已经被移动地址,因此更新安装软件的时候会报告 404  错误,我们需要手工修改一下源地址。

安装编译依赖

下载并编译代码

完成之后,拷贝到编译环境中并执行安装

继续编译,报告如下错误信息:

这个问题产生的原因是在qemu中无法处理编号为 64 的信号(Qemu rejects rt_sigaction of SIGRTMAX (64).),我们需要忽略这个信号。解决方法就是修改src/pkg/runtime/os_linux.c中的void
runtime·setsig(int32 i, GoSighandler *fn, bool restart)
函数,忽略这个信号。

完成之后,拷贝到编译环境中并执行安装

编译环境安装完成之后,可以成功编译golang-1.3.3,中途可能会失败,失败之后,重新编译可以通过。

编译 golang-1.4 ,由于 golang-1.4 的特殊性,任何高于 golang-1.4 版本的 golang ,都需要 golang-1.4 的编译环境才能开始编译安装!
我们依旧需要在树莓派环境中 raspbian-wheezy && WD MyCloud 编译,如下:

完成之后,拷贝到编译环境中并执行安装


我们需要在 golang 1.4.3 环境中继续编译,可以在 golang 1.3.3 中运行:


可以本站下载:
golang_1.3.3-1deb8u2.dsc
golang_1.3.3-1+deb8u2.debian.tar.xz
golang_1.3.3.orig.tar.gz
修改完BUG之后编译好的 golang_1.3.3-1.deb(4KB分页)/golang_1.4.3-3.deb(4KB分页)用于编译环境使用,不能在WD MyCloud上使用。

参考链接


树莓派国内源

树莓派官方源列表:http://www.raspbian.org/RaspbianMirrors

一下是国内部分:

Asia China Tsinghua University Network Administrators http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

Unreachable as of 15-may-2015

Asia China Dalian Neusoft University of Information http://mirrors.neusoft.edu.cn/raspbian/raspbian  
Asia China Cohesion Network Security Studio (CNSS)

http://raspbian.cnssuestc.org/raspbian/ 
rsync://raspbian.cnssuestc.org/raspbian

 
Asia China Unique Studio of Huazhong University of Science and Technology

(http|rsync)://mirrors.hustunique.com/raspbian/raspbian

 
Asia China University of Science and Technology of China

(http|rsync)://mirrors.ustc.edu.cn/raspbian/raspbian/

 
Asia China SUN YAT-SEN University http://mirror.sysu.edu.cn/raspbian/  
Asia China Zhejiang University http://mirrors.zju.edu.cn/raspbian/raspbian/  
Asia China Open Source Software Association of Chinese Academy of Sciences http://mirrors.opencas.cn/raspbian/raspbian/  
Asia China Chongqing University http://mirrors.cqu.edu.cn/Raspbian/raspbian/  

重庆大学树莓派源:

中国科技大学树莓派源:

浙江大学

参考链接


树莓派国内源