作为一个 Android 玩机人士必须熟悉的常识性问题

Author Avatar
Omico Yuwen 2月 06, 2017
  • 在其它设备中阅读本文章

起因

具体看以下链接:

http://weibo.com/5344594676/EujFal96K

作为一个辣鸡 Android 开发者,我表示无话(Fxxk)可说,为什么?具体看下面。

注:以下都是在 Android 的方面上通俗的讲,不一定能代表其他方面或其他编程语言。

正文

问:源码是什么,源码和编译的关系是是什么?

答:

在现代程序语言中,源代码可以是以书籍或者磁带的形式出现;
但最常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。
计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。

来源:

https://zh.wikipedia.org/wiki/源代码

问:反编译是什么?

答:

反编译就是把二进制文件转化成源码的过程。
(注:这里只说 Android , Android Java 部分的反编译是可以把 apk 里 class.dex 转化成中间代码 xx.smali
或完全转化回源码 *.java 状态的。)

问:插桩是什么?

答:

在安卓方面,插桩通常是指在 ROM 中通过反编译的方式获得中间代码 xx.smali
然后通过对中间代码的修改加入自定义的功能,达到为ROM添加功能的目的。
像 MIUI 、 Flyme 、 TOS 就是通过这种手段为第三方机型适配的。

问:移植是什么?

答:

在安卓方面,移植通常是指在不同机型但 CPU 相同的情况下通过替换其原厂 ROM 包里的文件的形式进行的适配,
也可以是相似或跨平台(高通、联发科、海思麒麟),只不过替换难度更大,更耗时,硬件差异较大时可能会导致某些 bug 无法修复的情况。

问:所以说适配到底是什么?

答:

在大家嘴中总能听到这个词,但是我想大多数人都没搞清楚什么是适配。
在通过和广大机油的聊天中,我渐渐明白什么大家嘴中的适配实际包含了源码编译适配、插桩(Patchrom)和拼凑替换适配俗称移植。。。
(所以出现了一些奇奇怪怪的 naive 机油,我想连他们自己都不知道适配到底是什么吧,只是听别人这么说而已。。。)
最后用一句话解释适配那就是为这个机型做包。

(以上是我的理解,如果有异议,请指教!)

其它

关于本文的出现的偏差欢迎指正。

This blog is under a CC BY-NC-SA 3.0 CN License
本文链接:https://blog.omico.me/android-user-from-naive-to-experienced/