Android系统启动完成后,第一个启动的Activity就是主界面应用程序Launcher,相当于电脑的桌面。Launcher界面可以看到系统中安装的所有APP,点击APP即可启动该APP应用了。那么,Launcher到底是如何启动的以及如何自定义自己的Launcher了?这篇文章我们就来讲讲这两个问题。
有时,需要在Java中直接调用本地(native)方法,把一些耗时的操作使用效率更高C/C++实现。在Java中调用本地方法通常被称为Java Native Interface(JNI)。那么,什么时候需要用到JNI了?
- 需要在底层实现耗时更小、更快的程序
- 在Java中需要调用本地代码库
- 需要使用平台相关但Java标准库文件不支持的特性
接下来,我们就来看一看,如何在Java中通过JNI来调用本地方法?
《权威与个人》是罗素在1948年里斯讲座所做的几次演讲的文章合集,里边谈到了个人自由与国家权威之间的关系,以及如何平衡这两者以促进人类的进步,确保个人生活的活力。对于缺乏自由与民主熏陶,在集体主义与强权政府成长起来的我而言,这种书无疑是一种解毒剂,让我意识到自由于个人、组织以及社会的重要意义。
前言
在上一篇文章里(http://sniffer.site/2016/11/29/Android-RILD%E8%AF%A6%E8%A7%A3/),简要介绍了Android RIL的架构。这一篇文章,就来看一看RILD(RIL Daemon)相关的内容。Android RIL在HAL(Hardware Abstract Layer)层(C++层)由三个部分组成:
- RILD是系统的守护进程,主要用于初始化LIBRIL以及启动厂商自定义的Vendor RIL;
- LIBRIL库被RILD初始化完成后,用于与Vendor RIL之间进行交互,负责接收、发送指令;
- Vendor RIL库是第三方厂商自定义的一个库,用于向Modem发送指令或者接收来自LIBRIL或者Modem的指令, Android有一个基于AT指令的默认参考实现(
reference-ril
)
连生活都要成为艺术
木心
Android系统是如何更新时间的了?Android提供了两种时间更新方式,NITZ和NTP,其中NITZ是基于移动基站通信更新的,与语音通话时相同的一个通道,而NTP则是通过数据通道(此时手机必须能上网)来更新的。这里,就来了解下这两种时间更新方式具体是如何工作的吧?
我同意叔本华说的,引导人们通向艺术和科学的最强烈动机之一是摆脱日常生活及其中令人痛苦的粗糙状态和无望的枯燥乏味,摆脱一个人自身总是在变化着的欲望的羁绊。。。就像画家、诗人或者哲学家一样,科学家努力要创造一个属于他自己的世界。他们中的每个个人都是这个宇宙及它的结构成为它的感情生活的支点,这是为了以这种方法寻找到他在狭窄的个人经历的漩涡中无法找到的宁静与安全
爱因斯坦
停机问题(The halting problem) 是可计算理论(Computability theory)中至关重要的一个问题。简单的来说,它要解决:给定一个输入,需要确定一个计算机程序是否能停机(产生问题的解)或者陷入死循环。究竟是否存在一个机器,能够检查给定任何输入的任何程序,确定程序是否在有限时间里停机了?
通常,使用Turning Machines(图灵机)来证明该理论:停机意味着图灵机接受或者拒绝一个输入,而如果一个程序在图灵机上陷入了死循环,则说明该图灵机不能在给定的输入上产生解。早在1936年,Alan Turing就证明了,停机问题是不可判定的,因而不可解。如果停机问题存在解,则其他许多计算机科学的难题也会得到解答,如 Kolmogorov compexity, the Busy Beaver function等。