魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
搜索内容:Android面试题
Android

Android面试题20–Android的View绘制

基础知识 ViewRoot: 具体实现类ViewRootImpl,是连接WindowManager和DecorView的纽带,View的三大流程(mearsure、layout、draw)均是通过ViewRoot来完成。 DecorView: 作为根View,其实是一个FrameLayout,内部包含一个竖直方向的LinearLayout,这个LinearLayout分为标题栏和内容栏两个部分。 PhoneWindow: Window对象通常由PhoneWindow来实现的,PhoneWindow将一个DecorV…

2018年3月16日 0条评论 5267点热度 0人点赞 daozi 阅读全文
Android

Android面试题19–Android事件分发机制

Android 的事件分发流程:Activity -> ViewGroup -> View 即:1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到 View。 如果事件不被中断,整个事件流向是一个类U型图,我们来看下这张图: 可以看出 android的事件传递机制是责任链模式,如果自己能处理就拦截下来自己处理,如果自己处理不了或者不确定就传递给下一个对象。 事件处理方式:拦截、分发、消费 类型 相关方法 Activity ViewGroup View 事件分发 disp…

2018年3月8日 0条评论 6922点热度 0人点赞 daozi 阅读全文
Android

Android面试题18–ADB的常用命令

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。这次整理的不一定全面,有待继续更新。 1.基本用法     1.1  命令语法     1.2 为命令指定目标设备     1.3  启动/停止     1.4  查看 adb 版本     1.5  以 root 权限运行 adbd     1.6  指定 adb server 的网络端口 2.设备连接管理     2.1 查询已连接设备/模拟器     2.2 U…

2017年6月27日 1条评论 27371点热度 0人点赞 daozi 阅读全文
Android

Android面试题17–apk反编译及重新打包

反编译别人的apk,可以给自己打开思路,分析一下同行他们的问题解决方法,这一步真的很重要,也是必须要掌握的技能之一。打包、签名这个过程也是需要掌握的,应为我们的 一、反编译代码 1、反编译java代码首先需要下载dex2jar这个工具,下载地址:https://sourceforge.net/projects/dex2jar/files/目前最新版是2.0, 下载完后并解压缩。 2、将要反编译的apk文件重命名为zip格式并解压缩,注意其中的classes.dex文件,它存放了全部的java代码,将classes.…

2017年1月19日 0条评论 6925点热度 0人点赞 daozi 阅读全文
Android

Android面试题16–代码混淆(Proguard)

1. Proguard认识 Proguard是一个非常高效和方便的混淆工具,使用了这个工具混淆打包后,apk体积显著的减少了,而且反编译难度也加大了。官网的介绍是:ProGuard是一个免费的Java类文件缩小,优化,混淆和预验证的工具。它检测和删除未使用的类,字段,方法和属性;优化字节码并删除未使用的指令;它使用短的无意义的名称重命名剩余的类,字段和方法。所得到的应用程序和库更小,更快,并且更好地针对逆向工程进行优化。 而且Proguard已经集成在Android studio构建系统里了,可以通过简单的代码来实…

2016年12月24日 3条评论 5461点热度 0人点赞 daozi 阅读全文
Android

Android面试题13–HTTP 请求方式、Post和Get的区别

HTTP 请求方式   方法 描述 GET 从指定的资源请求数据。 POST 向指定的资源提交要被处理的数据。 HEAD 与 GET 相同,但只返回 HTTP 报头,不返回文档主体。 PUT 上传指定的 URI 表示。 DELETE 删除指定资源。 OPTIONS 返回服务器支持的 HTTP 方法。 CONNECT 把请求连接转换到透明的 TCP/IP 通道。   两种最常被用到的方法是:GET 和 POST。   比较 GET 与 POST 下面的表格比较了两种 HTTP 方法:GE…

2016年12月11日 2条评论 4594点热度 0人点赞 daozi 阅读全文
Android

Android面试题12–对Context的理解、它的作用域、注意什么

Context到底是什么 Context的中文翻译为:语境; 上下文; 背景; 环境,在开发中我们经常说称之为“上下文”,那么这个“上下文”到底是指什么意思呢?在语文中,我们可以理解为语境,在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。 那Context到底是什么呢?一个Activity就是一个Context,一个Service也是一个Context。Android程序员把“场景”抽象为Context类,他们认为用户和操作系统的每一次交互都是一个场景,比如打电话、发短信,这些都是一个…

2016年12月11日 1条评论 4086点热度 0人点赞 daozi 阅读全文
Android

Android面试题10–IntentService与Service的区别

Service Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说它不能直接处理耗时操作。如果直接把耗时操作放在 Service 的 onStartCommand() 中,很容易引起 ANR .如果有耗时操作就必须开启一个单独的线程来处理。 那么我们当我们编写的耗时逻辑,不得不被service来管理的时候,就需要引入In…

2016年12月1日 2条评论 5290点热度 0人点赞 daozi 阅读全文
Android

Android面试题9–Android系统中GC什么情况下会出现OOM

这个问题可以这样回答: (1)数据库的cursor没有关闭。 (2)Bitmap对象不使用时没有采用recycle()释放内存。 (3)Activity中的对象的生命周期大于Activity。 (4)忘记注销监听器或者观察者。 (5)由非静态内部类导致。 (6)构造Adapter时,没有使用缓存contentview。 (7)Handler使用不当也可以造成内存泄漏的发生。 解释一下GC: GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致…

2016年12月1日 0条评论 3755点热度 0人点赞 daozi 阅读全文
Android

Android面试题8–Android Studio与Eclipse比较

Android Studio 好用吗? Android Studio是谷歌13年推出的一款基于Intellij IDEA开发的Android IDE。1.3版本之前有很多bug,所以导致没有多少人去使用,但是1.3之后版本的更新后已经非常不错了,现在的2.2基本到了不用就out的地步了。而且2016年11月3日Google已经正式终止了对Eclipse Android开发工具的支持。 那就说说它的优点: 1、自动保存,无需一直Ctrl + S。 2、有Code Local History,本地代码想还原到什么时间都…

2016年11月28日 5条评论 7148点热度 0人点赞 daozi 阅读全文
Android

Android面试题7–Android项目常用框架MVC、MVP、MVVM

一、MVC MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。 在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。那么Android项目中哪些代码来充当M,V,C角…

2016年11月28日 2条评论 10723点热度 0人点赞 daozi 阅读全文
Android

Android面试题6–BroadcastReceiver(广播)

BroadcastReceiver是四大组件之一,有接收广播机制,相对应就有发送广播机制。Android中,通过该机制,使得消息能在各个组件间、各个进程间传递,起到邮递员的作用。Broadcast在Android系统中应用的非常广泛,比如电池状态的变化、电话的接收、短信的接收、键盘输入法切换和网络连接状态变化都会由系统发送一个广播,然后应用程序通过BroadCastReceiver可以监听这些广播并作出相应的处理。此外,BroadCastReceiver可以通过监听其它应用程序发送的广播接收传递过来的信息进而实现进…

2016年11月28日 8条评论 8266点热度 0人点赞 daozi 阅读全文
页面

Android面试题-从屌丝到高富帅

1. 为什么要整理这些Android面试会问到的知识点?          对Android知识点没有深刻的理解,不能头头是道、滔滔不绝的说基本理论知识,只会遇到问题就去查官方API,到stackoverflow上找答案,去看GitHub上其他开发者的开源项目。这就是现状:知道怎么构架项目却说不出来MVC、MVP和MVVM的层次结构和区别;知道怎么用广播却说不出来广播有几种和怎么传递;知道IntentFilter却不能详细说出它的匹配规则;会使用RxJava、okhttp、android-async-http、An…

2016年11月25日 0条评论 10807点热度 0人点赞 daozi 阅读全文
Android

Android面试题5--Intent和IntentFilter的匹配规则

这个问题,一般都会问到,属于高频问题了。做了Android这么多年我也没有弄得很清楚,那这次我们就来仔仔细细的来理一理。 IntentFilter,顾名思义,就是Intent的过滤器。回想一下,好像Intent在我们的代码中出现的频率还是挺高的,是不是也没有特别的去理解它。 先来聊一下Intent Intent的意思是意图, 而就和它的意思差不多,每当我们使用 Intent的时候,总是去想干一些事情: startActivity(Intent intent) startService(Intent intent) …

2016年11月24日 4条评论 6373点热度 0人点赞 daozi 阅读全文
Android

Android面试题4--Activity之Intent的Flag

再详细讲解之前先说一下一个小细节: Intent的setFlag和addFlag有什么区别?是不是之前都没有太注意这个问题呢? 简单可以理解成:setFlag是把之前的替换掉,addFlag是添加新的。 addFlag可以多次添加即添加多个Flag,setFlag 也可以添加多个,不过需要一次性添加完,_Intent.setFlags(2|4); OK,我们切入正题,Flag很多,先说常用的Flag,再提提其他的Flag。 Flag的作用很多,有的标记为可以设定Activity的启动模式比如FLAG_ACTIVIT…

2016年11月24日 3条评论 7317点热度 0人点赞 daozi 阅读全文
12
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

最新 热点 随机
最新 热点 随机
解决Android 7及以上Notification.contentView为null问题 彻底解决git命令免密问题 隐藏ScrollView、RecyclerView等滚动条和去掉滑动到边界阴影的方案 Android Studio 3.4 编译Release版本广点通所有广告不显示 Android中使用System的getProperty()方法及获取Android内核版本信息 弄清楚INSTALL FAILED CONFLICTING PROVIDER问题
解决WordPress4.7中文标签打开出现404错误 Android中CrashHandler的实现 Android Studio gradle失败 (一) 在AndroidStudio中实现Gradle自定义插件 RadioGroup Checked Child Android 8.0.1 emulator ADB Device Unauthorized
最近评论
宝宝 发布于 7 年前(02月27日) 哈哈哈哈
GPU Mining 发布于 7 年前(02月19日) I am just starting to learn about all of this. Tha...
Timothynix 发布于 7 年前(02月08日) Your place is valueble for me. Thanks!… http:...
趣头条 发布于 7 年前(02月08日) 鸟儿叫,花儿笑,一年一季春来到!
xing1982 发布于 7 年前(02月04日) 不错不错!内容感觉好极了!

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号