![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
文章平均质量分 54
马占柱
Android行业多年软件开发经验,从事多年移动App开发,涉及医疗健康、商城、聊天、代驾打车、特种设备防护、公安边检查验领域;目前从事汽车车载系统开发工作。
展开
-
【建议收藏】106道Android核心面试题及答案汇总(总结最全面的面试题)
【建议收藏】106道Android核心面试题及答案汇总(总结最全面的面试题)原创 2023-10-09 15:50:02 · 136 阅读 · 0 评论 -
Android 架构MVC MVP MVVM+实例
MVC、MVP和MVVM是软件比较常用的三种软件架构,这三种架构的目的都是分离,避免将过多的逻辑全部堆积在一个类中。在Android中,Activity中既有UI的相关处理逻辑,又有数据获取逻辑,从而导致Activity逻辑复杂不单一难以维护。为了一个应用可以更好的维护和扩展,我们需要很好的区分相关层级,要不然以后将数据获取方式从数据库变为网络获取时,我们需要去修改整个Activity。转载 2022-10-12 16:46:32 · 1285 阅读 · 0 评论 -
Android中View的测量和布局过程
一直以来只是粗略的知道View的绘制会经过measure、layout到最终的draw三个过程,但对其中详细的measure和layout过程一无所知,很影响对一些特殊场景下的布局。ViewRoot和DecorViewViewRootViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRootI...转载 2018-07-26 09:39:20 · 205 阅读 · 0 评论 -
理解与配置Android studio中的gradle
使用gradle构建android应用时,你总是需要这样一个文件:build.gradle。你应该已经看过这个文件了,如果没有看过的话,你现在就可以看一下,它没有多少内容。它的简洁性得益于它提供了很多对设置和属性的默认值。gradle是基于groovy语言的,不过如果只是用它构建普通的工程的话,是可以不去学groovy的,如果想深入的做一下自定义的构建插件,可以考虑学一下groovy,因为它是基于...转载 2018-08-20 17:01:41 · 269 阅读 · 0 评论 -
阿里巴巴面经记
背景今年三月份入职了「51信用卡」,公司的福利待遇在杭州也算得上是翘楚,但好景不长,没能挨过 6 个月的试用期,倒在了七月末的一波 CY,不过公司对试用期员工也有稍许补偿,对此很是感恩,同时还要感谢共事的小伙伴们给了我成长和发展的空间,和他们匆匆告别后便回家修养生息,准备我的求职之路。更新简历上了 Boss 直聘更新了一波自己的简历,关于简历模板,之前我就分享过,传送门在此~ 要是觉得...转载 2018-09-28 11:01:43 · 362 阅读 · 0 评论 -
一个APP从启动到主页面显示经历了哪些过程?
本文以图文并茂的形式简单介绍一个APP从启动到主页面显示经历了哪些流程,以及实现的原理。不介绍具体源码,仅仅构建一个大体框架。一、流程概述启动流程:①点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求;②system_server进程接收到请求后,向zygote进程发送创建进程的请求;③Z...转载 2019-02-28 14:04:26 · 393 阅读 · 0 评论 -
自定义 View【基础入门篇】
在实际使用的过程中,我们经常会接到这样一些需求,比如环形计步器,柱状图表,圆形头像等等,这时我们通常的思路是去Google 一下,看看 github 上是否有我们需要的这些控件,但是如果网上收不到这样的控件呢?这时我们经常需要自定义 View 来满足需求。接下来让我们开启自定义控件之路关于自定义控件,一般辉遵循一下几个套路首先重写 onMeasure() 方法 ...转载 2019-07-01 16:44:19 · 139 阅读 · 0 评论 -
Android App的设计架构:MVC,MVP,MVVM与架构经验谈
最近发现一个挺不错的有关讲解MVC,MVP,MVVM的文章,在此做一个记录原博主文章转载 2019-08-14 16:16:25 · 128 阅读 · 0 评论 -
Android开发初级中级高级怎么划分
移动研发在最近两年可以说越来越趋于稳定,因为越来越多人开始学习Android开发,造成市场参差不齐。正所谓入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,并且对于初级中级高级需要怎么进行成才,很多人都比较迷惑。 为了方便大家成才,我把初级、中级、高级和资深四个常见的岗位需要掌握的一些知识进行如下整理。初级初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,...转载 2019-09-04 16:02:19 · 403 阅读 · 0 评论 -
面试复习——Android工程师之Android面试大纲
Activity面试题1、Activity是什么Activity是四大组件之一,它提供一个界面让用户点击和各种滑动操作,这就是Activity2、Activity四种状态runing paused stopped killed3、Activity生命周期onCreate() onStart() onResume() onPause() onStop() onD...转载 2018-11-29 16:08:51 · 186 阅读 · 0 评论 -
面向对象分析和设计(OOA,OOD,OOP,OOT)
OOAObject-Oriented Analysis:面向对象分析方法是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识...转载 2018-05-14 14:01:08 · 2398 阅读 · 0 评论 -
面试——七大基础算法
算法概念:算法简单来说就是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,也就是说算法告诉计算机怎么做,以此来解决问题。同一个问题存在多种算法来解决它,但是这些算法存在着优劣之分,好的算法速度快,效率高,占用空间小,差的算法不仅复杂难懂,而且效率低,对机器要求还高,当然,有时候算法之间存在一种互补关系,有些算法效率高,节省时间,但浪费空间,另外一些算法可能速度上慢些,但是空间比较节约,这...转载 2018-03-07 10:30:26 · 11515 阅读 · 0 评论 -
面试复习——Android工程师之Android面试大纲
Activity面试题1、Activity是什么Activity是四大组件之一,它提供一个界面让用户点击和各种滑动操作,这就是Activity2、Activity四种状态runingpausedstoppedkilled3、Activity生命周期onCreate()onStart()onResume()onPause()onStop()onDestroy()onRestart()4、进程的优先级...转载 2018-03-07 10:33:19 · 204 阅读 · 0 评论 -
面试复习——Android工程师之网络基础
各层网络协议相关1、OSI,TCP/IP,五层协议的体系结构OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP分层(4层):网络接口层(连接层)、 网络层、传输层、 应用层五层协议 (5层):物理层、数据链路层、网络层、传输层、 应用层TCP/IP口诀:从网络接口(层)获取数据时,需经过网络(层)访问,传输(层)到我们的应用(层)各层网络协议的作用物理层:...转载 2018-03-07 10:35:03 · 171 阅读 · 0 评论 -
面试复习——Android工程师之Java基础
cmd命令当我们编写好一段程序后,会执行下面的cmd命令来运行java程序,以HelloWorld这个类为例$ javac HelloWorld.java$ java HelloWorldHello World123javac:将java文件源编译成class字节码文件,如果运行指令没出错,就会产生一个HelloWorld.class的文件java:java后面跟着的是java文件中的类名,注...转载 2018-03-07 10:36:00 · 283 阅读 · 0 评论 -
面试复习——Android工程师之Java面试题
面向对象和面向过程的区别1、面向过程优点:性能比面向对象高,因为类的调用需要实例化,开销比较大缺点:没有面向对象的易维护、易复用、易拓展2、面向对象优点:易维护、易复用、易拓展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的程序缺点:性能比面向过程低Java的四个基本特性抽象:把现实生活某一类东西提取出来,成为该类东西的共有特性。抽象一般分为数据抽象和过程抽象,数据抽象是对象的属性,过程...转载 2018-03-07 10:36:56 · 1154 阅读 · 0 评论 -
排序算法总结
排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2)希尔排序O(n1.5)快速排序O(N*logN)归并排序O(N*logN)堆排序O(N*logN)基数排序O(d(n+r))一. 冒泡排序(BubbleSort)基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。过程:比较相邻的两个数据,如果第二个数小,就交换位置。从后向前两两比较,一直到比较最前两个数据。最终最小...转载 2018-03-13 15:13:15 · 160 阅读 · 0 评论 -
Google I/O 2018 之后, Android 工程师将何去何从?
公司一直有 Android 工程师免费参加 Google I/O 的福利,前两年缺了一点点运气,今年有幸搭上这班车,近距离感受现场的氛围,不得不说, Google 是全世界最伟大的公司,没有之一。但这并不重要,重要的作为 Android 工程师,未来的路该怎么走,这里说的 Android 工程师,不仅包括刚出校园的新人,也包括在社会上打拼多年的老司机。Android 工程师真的烂大街了么?Goog...转载 2018-05-10 09:52:22 · 478 阅读 · 0 评论 -
TCP和UDP的区别和优缺点
1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。3、UDP具有较...转载 2018-05-11 17:11:25 · 224 阅读 · 0 评论 -
Android进阶——Android消息机制之Looper、Handler、MessageQueen
前言Android消息机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦Android消息机制的简介在安卓开发中,常常会遇到获取数据后更新UI的问题,比如:在获取网络信息后,需要弹出一个ToastHttpUtils.doGet("https://www.so.com/", new Callback() { ...转载 2018-05-07 11:46:35 · 192 阅读 · 0 评论 -
面试复习——Android工程师之设计模式
单例模式1、概念单例模式是一种对象创建模式,它用于产生一个对象的具体实例,它可以确保系统中的一个类只产生一个实例2、好处省略创建对象所花费的时间对系统内存的使用频率降低,减轻GC压力,缩短GC停顿时间3、六种写法饿汉模式public class HungurySingleton { private static final HungurySingleton mHungurySingleto...转载 2018-03-07 10:25:05 · 184 阅读 · 0 评论