
Android面试题
Lingbulei
这个作者很懒,什么都没留下…
展开
-
Android之A面试题③应用程序启动过程源代码分析
前文简要介绍了Android应用程序的Activity的启动过程。在Android系统中,应用程序是由Activity组成的,因此,应用程序的启动过程实际上就是应用程序中的默认Activity的启动过程,本文将详细分析应用程序框架层的源代码,了解Android应用程序的启动过程。 在上一篇文章Android应用程序的Activity启动过程简要介绍和学习计划中,我们举...转载 2018-03-01 23:58:28 · 1019 阅读 · 0 评论 -
Android之D面试题②进程保活的一般套路(1像素Activity/账号同步/Jobscheduler/系统服务捆绑)
网上搜索一下进程常驻的方案好多好多,但是很多的方案都是不靠谱的或者不是最好的,结合很多资料,今天总结一下Android进程保活的一些方案,都附有完整的实现源码,有些可能你已经知道,但是有些你可能是第一次听说,(1像素Activity,前台服务,账号同步,Jobscheduler,相互唤醒,系统服务捆绑,等),经过多方面的验证,Android系统中在没有白名单的情况下做一个任何情况下都...转载 2018-03-05 23:20:59 · 1721 阅读 · 0 评论 -
Android之D面试题①关于 Android 进程保活,内存裁剪+优先级+同ID服务
本篇文章是后台杀死系列的最后一篇,主要探讨一下进程的保活,Android本身设计的时候是非常善良的,它希望进程在不可见或者其他一些场景下APP要懂得主动释放,可是Android低估了”贪婪“,尤其是很多国产APP,只希望索取来提高自己的性能,不管其他APP或者系统的死活,导致了很严重的资源浪费,这也是Android被iOS诟病的最大原因。本文的保活手段也分两种:遵纪守法的进程保活与流氓手段换来的进...转载 2018-03-05 23:00:48 · 1394 阅读 · 0 评论 -
Android之C面试题③高效加载大图多图解决方案,有效避免程序OOM(LruCache用法详解)
高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状、不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小。比如说系统图片库里展示的图片大都是用手机摄像头拍出来的,这些图片的分辨率会比我们手机屏幕的分辨率高得多。大家应该知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)...转载 2018-03-04 22:33:25 · 1050 阅读 · 0 评论 -
Android之C面试题②照片墙应用实现,再多的图片也不怕崩溃
照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影。它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的。制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放。因为随着GridView的滚动,加载的图片可能会...转载 2018-03-04 21:52:06 · 648 阅读 · 0 评论 -
Android之C面试题①高清加载巨图方案,拒绝压缩图片(BitmapRegionDecoder)
一、概述 对于加载图片,大家都不陌生,一般为了尽可能避免OOM都会按照如下做法:对于图片显示:根据需要显示图片控件的大小对图片进行压缩显示。如果图片数量非常多:则会使用LruCache等缓存机制,将所有图片占据的内容维持在一个范围内。其实对于图片加载还有种情况,就是单个图片非常巨大,并且还不允许压缩。比如显示:世界地图、清明上河图、微博长图等。那么对于这种需求,该如何做呢?首先不压缩,按照原...转载 2018-03-04 20:33:31 · 1002 阅读 · 0 评论 -
Android之B面试题⑤HTTPS和HTTP的区别
1. 什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = HTTP + SSL; HTTPS 在 HTTP 应用层的基础上使用安全套接字层作为子层。2. 为什么需要 HTTPS ? 超文本传输协议 (HTTP) 是一个...转载 2018-03-04 10:52:34 · 1983 阅读 · 0 评论 -
Android之B面试题④访问网络,使用HttpURLConnection还是HttpClient?
最近在研究Volley框架的源码,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnection,而在Android 2.2及以下版本,使用的是HttpClient。我也比较好奇这么使用的原因,于是专门找到了一位Google的工程师写的一篇博客,文中对HttpURLConnection和HttpClient进行了对比,下面我就给大家...转载 2018-03-04 09:23:40 · 748 阅读 · 0 评论 -
Android之B面试题③Context 上下文 你必须知道的一切
1、Context概念 其实一直想写一篇关于Context的文章,但是又怕技术不如而误人子弟,于是参考了些资料,今天准备整理下写出来,如有不足,请指出,参考资料会在醒目地方标明。 Context,相信不管是第一天开发Android,还是开发Android的各种老鸟,对于Context的使用一定不陌生~~你在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)...转载 2018-03-04 08:39:12 · 813 阅读 · 0 评论 -
Android之B面试题②两种注册、发送广播的区别(修改和中断有序广播)
前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver。主要介绍两种发送和注册广播的区别。BroadcastReceiver,广播接收者用于接收系统或其他程序(包括自己程序)发送的广播。一.注册广播在android中,我们如果想接收到广播信息,必须自定义我们的广播接收者。要写一个类来继承BroadcastReceiver,并且重写其onRecei...转载 2018-03-04 08:28:33 · 492 阅读 · 0 评论 -
Android之B面试题①服务两种启动方式的区别
Service是Android四大组件之一,也是可执行的程序,有自己的生命周期。创建、配置Service和创建、配置Activity的过程相似。和Activity一样,都是从Context派生出来的。——《疯狂android讲义(第二版)》一.Service的第一种启动方式采用start的方式开启服务使用Service的步骤:1.定义一个类继承Service2.在Manifest.xml文件中配置...转载 2018-03-03 13:03:34 · 498 阅读 · 0 评论 -
Android之A面试题⑦Binder设计与实现 - 设计篇
摘要Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binder并将之与传统IPC做对比有助于我们深入领会进程间通信的实现和性能优化。本文将对Binder的设计细节做一个全面的阐述,首先通过介绍Binder通信模型和Binde...转载 2018-03-03 12:19:33 · 315 阅读 · 0 评论 -
Android之A面试题⑥Binder机制(C++)
一、 说明 Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。 我们这里将以MediaService的例子来分析Binder的使用:l------ServiceManager,这是Android OS的整个服务的管理程序l--...转载 2018-03-03 09:32:18 · 969 阅读 · 0 评论 -
Android之A面试题⑤进程间通信(IPC)机制Binder简要介绍和学习计划
在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这就是本文中要介绍的Binder进程间通信机制了。 我们知道,Android系统是基于Linux内核的,而Linux内核继...转载 2018-03-03 08:34:25 · 573 阅读 · 0 评论 -
Android之A面试题④应用程序内部启动Activity过程(startActivity)的源代码分析
上文介绍了Android应用程序的启动过程,即应用程序默认Activity的启动过程,一般来说,这种默认Activity是在新的进程和任务中启动的;本文将继续分析在应用程序内部启动非默认Activity的过程的源代码,这种非默认Activity一般是在原来的进程和任务中启动的。 这里,我们像上一篇文章Android应用程序启动过程源代码分析一样,采用再上一篇文章And...转载 2018-03-03 08:12:17 · 399 阅读 · 0 评论 -
Android面试题之重男轻女until男的男女概率
题目:某国家非常重男轻女,若一户人家生了一个女孩,便再要一个,直到生下男孩为止,假设每次生产生男生女概率相等,请问平均这个国际的性别比例是多少。结果是1:1。分析:每次生产,男孩女孩的概率是均等的,生男孩或者女孩影响的是一个家庭的人口;如果生的是女孩继续生产,结果并不影响产妇生产男女的概率,意思是每次生产的男女概率都是1:1;可以用我们国家10多亿人口,再加上B超和人流...原创 2017-11-24 23:57:24 · 702 阅读 · 0 评论