技术随笔之杂谈互联网APP技术

 

认识的朋友越来越多去了互联网公司工作,并且看起来互联网公司对做过手机设备的系统工程师比较青睐。其实我对互联网做APP公司招聘编译器大概OS的人,觉得有些奇怪。从技术上简单讨论一下,互联网做APP质量提升的工程师需要的技术栈跟手机厂商做基础软件质量(稳定性/性能/功耗)差异是什么。

站在APP角度来说,应用运行在一个非常受限的沙箱环境,包括权限、使用内存、可以调用的接口都是被系统所限制。而对于设备厂商,整个软件stack都是可以进行修改和调整的。限制不同,也就影响了工程师解决问题的方式不同:

1,互联网公司擅长使用各种HOOK技术。在不能修改系统服务和内核代码环境下,应用只能对应用进程内部加载的所有组件包括虚拟机/libc,进行动态HOOK替换某些函数的执行,去调整执行逻辑。目前看到包括art gc及其类加载等各种函数都大概被hook,然后控制程序的执行。这给我们的启示就是任何应用进程内做的控制和安全机制都是不可靠的,应用厂商很容易绕过。

2,互联网应用擅长研究系统漏洞,然后充分利用。最近看到一个案例,就是拼多多通过注册url.provider保活的方式。可以说应用为了在系统中多运行一会,可以说费尽心思。互联网大厂招聘了很多设备厂商工程师,我想目的就是了解这些设备厂商都做了哪些方案大概Android系统都做了一些什么方案,然后看看怎么能够绕过大概利用这些方案。

3,互联网应用的工程师研究的技术细节比设备厂商工程师更加细致。因为受限的运行环境,需要工程师研究各种奇巧,因此他们对虚拟机,ELF/linker等研究的非常仔细,以定制一些对自己应用有利的环境。

从互联网公司业务目标来说,肯定希望应用更多的驻留,更快的性能,更快的发布和修复BUG,努力通过HOOK技术大概系统漏洞去替换和调整运行环境,把自己打造成一个小OS,以满足未来业务需要。

最近我也在花费一些时间去看各个大厂这的技术博客等文章,一方面希望站在应用角度看,他们都做了什么和为什么这么做,采用了哪些技术。二方面去看系统能为应用提供什么的能力,可以帮助应用提升体验。

分享到:

相关文章阅读:

  • 现在我们似乎总是会看见一些细思极恐的题目或者图片,今天就来看看这些恐怖的内涵图片,可能一开始看觉得没有什么,但是诡异图片看懂了
    互联网最记录:3203
  • 生活中有太多事情是我们无法从科学角度解释的,所以每个人都可能会碰到灵异事件,明星自然也不例外,最典型的例子就是香港有位大明星在
    互联网最记录:2978
  • 面具一般都是小孩子喜欢玩的东西,大部分都是看起来十分有趣的。但是有的面具却并非如此,毕竟一开始面具的出现就不单单只是玩具。有
    互联网最记录:2907
  • 人们对于美食的追求总是胜过一切,毕竟吃才是最最享受的。特别是在法国,他们把美食当做高尚艺术来看待,法国菜更是作为世界三大料理有
    互联网最记录:2707
  • 地球上80%被水覆盖着,人类历史的发展离不开水,特别是淡水是人类生存的根本之源,而河流是人类获取淡水的唯一途径,那么世界十大河流是
    互联网最记录:2646
  • 世界上神秘的怪兽有很多,今天小编就来给大家说说其中的十类神秘怪兽,其中小编要重点提的泽西恶魔简直就是令人心惊胆寒,这样的怪物长
    互联网最记录:2620
  • 互联网排行(TOP10)