0%

AMS提供的主要功能:

  • 统一调度各个应用程序的Activity。

应用程序须要启动Activity–>报告给AMS,决定是否能够启动–>若是能够,通知应用程序运行指定Activity。数据结构

AMS必须知道各个应用程序运行的Activity。异步

  • 内存管理。

Activity退出时不会当即被杀死,只有在内存紧张时才会自动被杀,这些操做由AMS管理。

  • 进程管理。

AMS向外提供了查询系统正在运行的进程信息的API。

阅读全文 »

Kotlin(科特林)是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。
Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。除此之外Kotlin还可以编译成二进制代码直接运行在机器上(例如嵌入式设备或 iOS)。
Kotlin已正式成为Android官方支持开发语言。

阅读全文 »

为了系统的安全与稳定,Linux系统是存在进程隔离的:两个不同的进程,如应用App进程和ActivityManagerService服务所在的system_server系统进程,是无法直接通过内存地址访问到对方内部的函数或者变量的。所以两个进程如果需要相互访问就涉及到一个跨进程通信的概念即IPC(Inter-process communication,进程间通讯)。

阅读全文 »

动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说让你求最长递增子序列呀,最小编辑距离呀等等。

既然是要求最值,核心问题是什么呢?求解动态规划的核心问题是穷举。因为要求最值,肯定要把所有可行的答案穷举出来,然后在其中找最值呗。

阅读全文 »

回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」

阅读全文 »

在处理数组和链表相关问题时,双指针技巧是经常用到的,双指针技巧主要分为两类:左右指针和快慢指针。
所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行,一快一慢。
在数组中并没有真正意义上的指针,但我们可以把索引当做数组中的指针,这样也可以在数组中施展双指针技巧

阅读全文 »

在进行NDK相关开发时会经常遇到各种闪退异常,Native层的异常不像Java层的异常一样能直接把详细的堆栈信息输出到logcat,那我们该如何处理Native层异常问题呢?

阅读全文 »