Android 64位变32位

本文介绍了如何将64位Android系统修改为32位,主要涉及修改TARGET_ARCH及相关变量,以及配置zygote为32位。讲解了TARGET_ARCH、TARGET_ARCH_VARIANT、TARGET_2ND_ARCH和TARGET_2ND_ARCH_VARIANT的含义,以及arm、mips和x86系列的CPU架构版本。最后讨论了zygote32在Android系统中的角色。
摘要由CSDN通过智能技术生成

人生最大的改变就是去做自己害怕的事情。

今年的Google I/O大会上Google提出了Android GO,其目的是尽可能的让Android系统能运行在低配的手机设备。其中就提到了为了节省存储空间,Android GO是32位系统。

本篇博文沿着这个思路,介绍将Android改为32系统的方法。修改的地方较少,只用修改两个地方。

修改64位Android系统成32位

  1. 定义TARGET_ARCH跟TARGET_ARCH_VARIANT为32位,TARGET_2ND_ARCH跟TARGET_2ND_ARCH_VARIANT赋空值.
  2. 配置zygote为32位,在项目对应的make文件中添加
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32

到此修改完毕了,可以收工了。当然如果你还想知道这背后的细节知识,请继续往下看。

TARGET_ARCH是什么

TARGET_ARCH代表的是编译Android的目标CPU架构的名称,比如:arm,x86。利用uname -m可以查看当前手机的的CPU架构,我自己手机运行结果如下:

$ adb shell uname -m
armv7l

TARGET_ARCH_VARIANT是什么

VARIANT英文译为”不同的”,TARGET_ARCH_VARIANT之前被称为TARGET_ARCH_VERSION,其作用是区分相同CPU架构的不同版本,比如arm架构它有很多个版本,我们依靠TARGET_ARCH_VARIANT来进行选取。

TARGET_ARCH_VARIANT在源码中有多个值,比如armv7-a-neon/x86_64/mips64r6。这些分别代表什么含义呢?

arm系列

以armv7-a-neon来举例说明,arm打头代表CPU架构是arm的,v7表示版本,v7以及v7以下的版本均是32位的,从v8开始就是64位了。而v7版本的arm又细分为三种:

    评论 2
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值