一些题目——2017年3月25日

1.Android虚拟机是在哪一层?

是在Android运行库层

2.两个堆栈共享一个向量空间的优点:

节省地址空间,减小上溢发生的概率

3.安卓中,由Handler引发的内存泄漏的解决方法:

主要是因为Handler属于TLS(Thread Local Storage)变量,生命周期和Activity是不一致的,Handler引用Activity会存在内存泄露。

解决方法:

~ 使用显形的引用,1.静态内部类。 2. 外部类

~ 使用弱引用 2. WeakReference

4.进程的标志

PCB是进程存在的唯一标志。进程控制块(Process Control B1ock,简称PCB)是用来记录进程状态及其他相关信息的数据结构,PCB是进程存在的唯一标志,PCB存在则进程存在。系统创建进程时会产生一个PCB,撤销进程时,PCB也自动消失。

5.linux中查看内存使用状态的命令(请务必自己试一下)

~ cat /proc/meminfo

查看RAM使用情况最简单的方法是通过/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。

~ atop

atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。

~ free

free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

~ htop

htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。

~ ps

ps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:  $ ps aux --sort -rss

~ smem

smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。

实例:$ sudo smem --pie name -c "pss"

6.编程题:

~ 数组长度为n,目的是去除多余的元素,但是要保留最后出现的元素。 //反着遍历数组就行了

~ 现在有2个cpu能共同工作,一共有m项任务,求能完成的最小时间

~ 有6个任务,n个工程师(1


输入:

6

012345

012345

012345

012345

012345

输出: 720

7.问答题:Android中Activity组件的功能以及防护其安全的方法

引用此博客 引用此博客

四大组件指的是应用组件:Activity、Service、BroadcastReceiver、ContentProvider;

在应用中一个Activity可以用来表示一个界面, 中文意思也可以理解为“活动” ,即一个活动开始,代表Activity组件启动;活动结束,代表一个Activity的生命周期结束。

在android中,Activity的生命周期统一交给系统管理;

1、Activity的状态:

~ Resumed:Activity对象出于运行状态。一个新Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可以与用户交互的激活状态。

~ Paused:另一个Activity位于前端,但是本Activity还可见。

Paused状态常用于:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。注:一个Activity出于paused状态时,系统并不会释放资源。释放资源你的操作要靠开发者来完成。

~ Stopped:另一个Activity位于前端,完全遮挡本Activity。

~ killed:Activity被系统杀死回收或者没有被启动时。

你可能感兴趣的:(一些题目——2017年3月25日)