android打包固定id
前言
6月份跳槽来了一家广告公司,整个业务逻辑就是流量玩法,上架市场,买量,赚广告费。因为gp上架越来越难,就衍生出一种玩法叫AB面。关于AB面,这里先不讲,主要说说B包的资源处理。这篇没技术,单纯自己记下来当笔记用。
id
id其实是个整数,应用内的id一般情况是0x7fxxxxxx,这个hex其实是package,type,value的结构。而代码中如果有R.id.xx,会在编译时直接替换成该整数。做AB面的包,B包都是通过动态加载的,这就导致这个整数,必须在使用时,和你的资源对应。10年有,有种粗暴的解决办法,就是构建一个自己的aapt,可以指定package,也就是前面的7f,然后再用添加Resources的方式,将资源添加到资源管理器中。这样就能一劳永逸。B包打包,使用0x7e的资源,A包不处理,这样AB的资源就不会冲突。
1 | android{ |
遥遥领先的DNS配置
android 14安装CA证书
mac mini配合linux当服务器使用
前言
我主业是安卓开发,但不务正业的我又在折腾别的了。
之前写过一篇关于 NX54 如何配置 iptables 以开放指定 IP 的 IPv6 防火墙规则。最近又把手上的一块 14 年的废弃 ARM 开发板翻出来,挂了块硬盘,让我在任意设备上都能访问家里的网络。要说这块板子,官方系统只到ubuntu 2014,连python3都没法装,之前折腾过armbian,但kernel有问题,usb不工作。最近看论坛去年有人升级了内核了,赶紧换一下系统。
过年期间家属送了一台 Mac mini(现在百亿补贴入手价 2899,血亏 600),于是我又折腾了一下,把整个网络重新整理了一遍。熬了几个夜晚和午休时间,总算弄好了,这里记录一下过程中遇到的问题和解决方案。
之前我做了什么
- 桥接路由,这样可以直接获取公网ipv6地址,供自己在外边连接。
- 关防火墙。大多数路由器都有ipv6防火墙,像我的NX54就是基于ip6tables的配置,需要关掉。我是只关掉了我的linux的ip。我使用了脚本自动更新,脚本流程如下: 不得不说,cloudflare真的是互联网之光,域名便宜,免费加速,还提供Pages,Workers。
1
linux定时任务 -> python脚本 -> 获取ipv6 -> 发现变化 -> 更新nx54防火墙 -> 更新cloudflare dns AAAA(最早做了一版发email的,后来改ddns了)
- linux关闭ssh密码访问,把常用的设备公钥加进去。
GmSSL中的totp
nx54的ipv6配置nas,内网穿透访问,nxginx、DDNS都在这里
H3C NX54不关ipv6防火墙,允许外网访问内网
如何构建一个pdfium.so
前言
项目中接入了打开pdf文件的功能,使用的是https://github.com/barteksc/PdfiumAndroid/。现在想升级一下pdfium库,旧库具体原因就不解释了,毕竟这个项目最后一个commit在6年前,当然,平常用来接入打开pdf也是没问题的。
开源库
在google一通搜索,发现pdfium库包含两套,一套在aosp中,另一套在chromium中。
- https://android.googlesource.com/platform/external/pdfium/
- https://pdfium.googlesource.com/pdfium/
两款代码应该差不多,aosp的构建使用Android.bp,版本要比pdfium版本的落后一些。再看PdfiumAndroid项目README,第一句就说Uses pdfium library from AOSP,使用的库应该也是aosp的库。
构建aosp版
准备
- ubuntu 可以使用virtual box去装个虚拟机
- 200GB以上硬盘空间,清华会推荐你下载aosp-latest.tar再解压,光压缩包80G了,解压完我就把tar包删了
获取aosp源码
推荐使用清华镜像https://mirrors-i.tuna.tsinghua.edu.cn/help/AOSP/,可结合google的官方说明https://source.android.com/docs/setup?hl=zh-cn。具体指令就不介绍了,主要是repo sync费时,注意选好你想构建的build tag。