-
NativeBridge - Manage Java Native Interface Functionality of Alternative Architecture on Android
Android, the most popular mobile operating system, hosts applications composed by Java code and native code. Java Virtual Machine of Android provides Java Native Interface functionality as the bridge of Java world and native world. As native world is platform dependent, it requires significant effort for application vendors to enable ARM applications, which are of the majority in Android ecosystem, on Non-ARM devices. Thus, Android is bind to ARM platform though it's a modern operating system. To address this issue, Android introduced NativeBridge to manage the Java Native Interface functionality of alternative architecture, such that a platform can support non-native applications on it. In this way, Android applications can run on any Android platforms regardless of the architecture.
-
如何挑选 Filco 机械键盘
玩过几把 Filco 的机械键盘,考虑到网上的介绍要么软文太多,要么过于零散,这里总结分享一下。
-
笔记:Machine Learning by Andrew Ng
只记录「以前」不知道或没注意或忘掉的信息。
-
基于命名空间的动态链接—— 隔离 Android 中应用程序和系统的本地库
Android 提供针对 Java 的 SDK 和针对本地应用的 NDK 作为 API 。对于私有接口,Java 库通过 Java 类加载器 (ClassLoader) 对应用程序隐藏,而本地共享库库可以很容易地被访问。另一方面,Oreo 的 Project Treble 旨在通过将 Android 实现分为Framework 和 Vendor 两个部分来解决碎片化的生态系统。这种代码划分需要在一个进程中分别管理两个本机库的集合。面对这些挑战,Android 动态链接器引入了 命名空间 (namespace)来隔离动态链接空间。 Android 系统部署 命名空间 以防止应用程序与私有本地库动态链接,并在不同的沙箱中管理 Framework 和 Vendor 库。本文分析了Android Oreo 的 命名空间 ,包括动态链接器的机制以及它与高层策略的相互配合,并讨论了其影响和收益。
-
转基因食品的问题
我不打算讨论转基因食品对人体是否有害,这不是我的专业范畴。我想讨论的是基于某种潜在的威胁,我们是否要接纳转基因。
-
九月的降临
汪洋中的一条船
-
Namespace based Dynamic Linking - Isolating Native Library of Application and System in Android
Android provides Software Development Kit (SDK, for Java) and Native Development Kit (NDK, for native language such as C and C++) as public Application Programming Interface (API, includes libraries). For private interface, Java libraries are hidden from applications by Java ClassLoader, while native libraries could easily be accessed previously. On the other hand, Project Treble of Android Oreo, aiming to address fragmented ecosystem by dividing Android implementation into Framework and Vendor part, needs to manage native libraries of two sets in one process separately. With these challenges, Android dynamic linker introduces namespace which isolates dynamic linking space. Android system deploys namespace to prevent applications from dynamically linking against private native libraries, and host Framework and Vendor libraries in different sandboxes. This article analyzes the namespace of Android Oreo, including the mechanism of dynamic linker as well as its inter-cooperation with system level namespace policy, and discusses the impacts and benefits.
-
官僚系统的失灵
看过一篇《官僚制控制体系的失灵与变革》,其中主要论述的是在复杂多样化时代背景下,传统官僚体制无法敏捷地对日新月异的变化做出反应,官僚体系愈加庞大而又对新挑战应接不暇。这表明传统体系已经很难在新时代产生效益。作者并未给出有效的变革方法,毕竟,这得是圣贤大哲思想家的才能。近来有感于公司战略变动与底层应对各方面的矛盾冲突,随意谈论点。但我意并不在官僚系统与当今社会的矛盾冲突,而在于官僚体系中的内在矛盾。