- 博客(32)
- 收藏
- 关注
原创 面试---AMS在Android起到什么作用,简单的分析下Android的源码
面试官: AMS在Android起到什么作用,简单的分析下Android的源码心理分析:这道题在发生在大多数场景下。面对这道题 很多求职很茫然,不知道该如何说起。AMS本身比较复杂难以理解。工作多年也很难弄清AMS的作用,其实我们大可从以下几点入手组件启动、进程切换、Crash异常入手求职者:AMS难以表述 我们就从最熟知 的Activity启动入手,逐步深入和分析,用定力告诉面...
2019-07-09 09:46:22
3329
原创 腾讯面试题——谈一谈Binder的原理和实现一次拷贝的流程
面试官: 谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解求职者:应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空间 与用户空间的定义1 Linux 下传统的进程间通信原理了解 Linux IPC 相关的概念和原理有助于我们理...
2019-06-26 16:22:05
6450
13
原创 Android动态添加Fragment
Android动态添加Fragment效果图如下:项目结构图如下:Fragment1:package com.demo.dongtaifragment;import android.app.Fragment;import android.os.Bundle;import android.support.annotation.NonNull;import andr...
2019-05-29 09:34:54
2534
原创 Android SurfaceView
下面就贴上一个小程序代码,主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来改变圆的位置代码:Activitypackage com.view; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android...
2019-04-25 16:12:10
282
原创 Android浸入式
现在比较流行的就是浸入式,也就是状态栏颜色和当前页面颜色保持一致,为了有更好的视觉效果。 首先: 在setContentView()之前加上如下代码 tintManager.setStatusBarTintResource()可以设置想要的通知栏颜色@Override protected void onCreate(Bundle savedInstanceState) { ...
2019-04-24 14:37:50
774
原创 Android 混淆问题排查
问题近期在开发过程中,突然出现混淆后程序出现运行时异常,编译是正常的,不混淆也是正常的, 错误信息如下提示12-07 14:10:27.056 10603-10603/? E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException: Unable to instantiate application com...
2019-04-23 15:53:34
1135
原创 Android 平铺背景图片
Android的图片平铺效果,主要有三种方法:1)系统API; 2)XML配置; 3)自定义绘制方法1: 系统api实现Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);//bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888)...
2019-04-22 14:10:14
302
原创 Android --- 图片的特效处理
Android --- 图片处理的方法转换 - drawable To bitmap缩放 - Zoom圆角 - Round Corner倒影 - ReflectedbitmapPrcess code:package com.learn.games;import android.graphics.Bitmap;import android.graphics...
2019-04-17 17:35:01
557
原创 Android 应用程序签名
Android应用程序签名相关的理论知识包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说...
2019-04-16 10:51:41
233
原创 Android TouchEvent事件传递机制
跟touch事件相关的3个方法: public boolean dispatchTouchEvent(MotionEvent ev); //用来分派event public boolean onInterceptTouchEvent(MotionEvent ev); //用来拦截event public boolean onTouchEvent(MotionEvent ev); //用来处理eve...
2019-04-14 14:47:47
211
原创 Android事件处理
Android事件处理通常和控件相结合,通常有以下几种事件处理模型:(一)事件监听的处理模型public voidonCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button ...
2019-04-12 15:04:08
214
原创 Android中的权限问题
在Android程序中,在执行形如访问网络、读取联系人时都要声明权限,在 Android 系统版本小于6.0时,所有的权限只需要在AndroidManifest文件中声明就可以使用对应的功能了。 但是在Android6.0版本以上,Android将权限分为了普通权限和危险权限,其中普通权限的使用和以前的Android版本一样,直接在AndroidManifest文件中声明就行了,系统会自动帮我们授...
2019-04-11 15:27:48
419
原创 Android插件化原理解析
概述Android插件化技术,可以实现功能模块的按需加载和动态更新,其本质是动态加载未安装的apk。本文涉及源码为API 28插件化原理插件化要解决的三个核心问题:类加载、资源加载、组件生命周期管理。类加载Android中常用的两种类加载器:PathClassLoader和DexClassLoader,它们都继承于BaseDexClassLoader。...
2019-04-10 15:59:36
542
原创 Android 面试 15 家大厂,这个问题是必问!
年后面了十余家大厂,每家都会问的一个问题就是Android的消息机制!可见Android的消息机制是多么重要!消息机制之所以这么重要是因为Android应用程序是通过消息来驱动的,Android某种意义上也可以说成是一个以消息驱动的系统,UI、事件、生命周期都和消息处理机制息息相关,并且消息处理机制在整个Android知识体系中也是尤其重要,在太多的源码分析的文章讲得比较繁琐,很多人对整个消息...
2019-04-09 15:22:12
426
原创 腾讯大牛:你根本不懂Activity!
在之前的Activity篇主要学习Activity的生命周期、创建和页面跳转的实现,本篇将深入了解Activity,学习清单: 生命周期全解析 四种启动模式 IntentFilter匹配规则 一. 生命周期全解析1.问:典型情况下Activity生命周期a.onCreate(): 状态:Activity 正在创建 任务:做初始化工作,如setCo...
2019-04-08 15:19:44
266
原创 SVG图片在移动端的应用解决方案
近几年来SVG使用得越来越多,就连Android的官方库也加入VectorDrawable的支持。这个类就是用来支持向量图的。SVG图片在web端使用非常广泛,我第一次接触这个也是在做react-native的项目中使用的。当时我们要做一些动画,需要从一个形状变换成另一个形状,这种一般都是用矢量图来做的。当时设计师就给了我一些矢量图,于是我就开始研究这个东西。在react-native中,有专...
2019-04-04 11:57:41
1823
原创 Android上手机软件调用外部地图软件
有时候一个项目,需要用到地图,但是又不想再软件里重写一个地图,于是就想法调用手机安装好的地图软件。现在用的最多的地图软件,高德地图和百度地图,不过还有搜狗地图和腾讯地图。其他的地图就用的少了,现在就不考虑了。不多说上代码!!!1、activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xm...
2019-04-03 10:02:40
515
原创 Android自定义View,画一个好看带延长线的饼状图
前言在Android中,图表的实现是比较麻烦的,基本只能通过自定义View来实现。目前Github上有一些集成度高功能性强的三方库,比如MPAndroidChart等。但三方库虽然强大,定制性总是有限的,在项目中为了达成一些特别需求,就要靠我们自己去画啦。虽然费点时间,不过计算各种绘制点的位置的过程还是很有趣的。我个人对于自定义View这部分只是小有了解,所以大家如果对本文中的代码有什么改进意...
2019-04-02 11:23:45
769
原创 App相互唤醒的几种方式
下文皆使用Client表示操作的App,Server表示需要被唤起的远端App,Server的包名为“com.jxx.server”1. ComponentName使用ComponentName唤起Server步骤很简单,需要注意的是Server的Activity需要在manifest配置种设置exported为trueServer的配置如下:<activity andro...
2019-04-01 09:54:25
3783
原创 一种非常简单的Android屏幕适配方案
前言作为一个Android开发人员,你还在为了适配各种尺寸的屏幕而苦恼吗?你还在为了出现一个新的机型而修改着数不尽的dimens和layout吗?你还在为了UI给的奇葩尺寸的设计图而绞尽奶汁计算距离吗?如果你为了这些事情而苦恼,那么看完这篇文章,希望可以帮你减少开发时间,减缓生命的流逝速度。。。不知道大家有没有看过前一段时间今日头条技术团队发表的一篇关于Android屏幕适配的文章:一...
2019-03-31 14:53:23
274
原创 你必须要懂的 APK 瘦身知识
随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量就是钱,减少APP的大小就显得尤为重要。从开发者层面上来讲,你掌握了这个手艺也会略显逼格满满。1、APK结构的那些事知己知彼,方能百战不殆。了解应用程序APK的结构对于我们来说...
2019-03-29 16:36:00
241
原创 一篇文章看明白Android hook技术如何实现一键换肤
前言产品大佬又提需求啦,要求app里面的图表要实现白天黑夜模式的切换,以满足不同光线下都能保证足够的图表清晰度. 怎么办?可能解决的办法很多,你可以给图表view增加一个toggle方法,参数String,day/night,然后切换之后postInvalidate 刷新重绘.OK,可行,但是这种方式切换白天黑夜,只是单个View中有效,那么如果哪天产品又要另一个View换肤,难道我要一个一个...
2019-03-28 15:58:50
766
1
转载 今日头条Android面试的10道题
首先说一下,今日头条的面试主要分为三轮到四轮,如果是旺季面三轮,首先是基础面试,基本面试一般10个题左右,最近面试了一下今日头条的移动Android资深工程师,记录下。第一面是北京的开发进行视频面试,有理论和编程题组成。用的是在线编程工具,如下图。这里写图片描述第一面1,请编程实现单例模式,懒汉和饱汉写法。<pre class="prettyprint" style...
2019-03-27 15:38:23
609
原创 解决组件化开发butterknife 在 library中使用的坑
在Android开发中butterknife是一个很好的对资源初始化的工具,它可以使你的代码简洁通俗易懂,同时配合Android ButterKnife Zelezny插件可以让你写代码的速度提升至少20倍。在一般app中我们都是单组件开发,什么意思呢,你只有一个主moduel,所有代码不管是java,xml,资源,依赖库都在app中,这个时候使用butterknife是非常简单的,如GitH...
2019-03-26 15:26:39
1527
1
原创 只会写xml和Activity,做android真的不行!
前言安卓行业主要问题是初级Android太多了,会写xml和Activity的程序员太多了,初中级程序员面临很大的竞争,现状也就偏于高级开发者。越来越多的初中级Android程序员找不到满意的工作,甚至根本找不到工作!所以很多人觉得Android要凉了,甚至不惜转行,从头学其它技术。现在的Android招聘要求,已经不是多年之前的要求了。Android 应用开发发展到今天,已经成为一个非常成...
2019-03-25 14:46:08
875
原创 Gradle——构建环境
构建环境目录一、通过gradle.properties配置构建环境二、Gradle属性和系统属性三、通过代理访问web一、通过gradle.properties配置构建环境Gradle提供了几个选项,可以轻松配置将用于执行构建的Java进程。 虽然可以通过GRADLE_OPTS或JAVA_OPTS在本地环境中配置它们,但是如果可以使用VCS中的项目对某些设置(如JVM内存设置,Java...
2019-03-23 14:57:45
859
原创 Android Studio NDK(C++)
对于部分android开发可能没有使用过NDK,ndk只是工具,我们真正要实现的功能还是需要c/c++来编写我们的实现代码。对于没有使用或学习过c/c++的同学,可能一听到c/c++编码的字眼就会有点头晕,想放弃的想法了。但是其实我们平时在NDK中编写C/C++会用到的语言特有特性很少,或者选择不去使用。完全将其当成java来编写,然后慢慢的会发现其实也就这样嘛。。。我们首先可以选择使用C++来...
2019-03-22 10:17:11
1287
原创 带你理解 Android 消息机制原理
Android的消息传递,是系统的核心功能,对于如何使用相信大家都已经相当熟悉了,这里简单提一句。我们可以粗糙的认为消息机制中关键的几个类的功能如下:Handler:消息处理者Looper:消息调度者MessageQueue:存放消息的地方使用过程:Looper.prepare > #$%^^& > Looper.loop(死循环) — loop到一个消息...
2019-03-21 10:02:03
213
转载 如何用RecyclerView实现猫眼电影选择效果
一、简介在官方推出RecyclerView 控件之后,越来越多的人都使用它代替之前的ListView。除了最普通的列表显示,RecyclerView还可以其他的很多效果,例如Banner等。在最近的一个电影票平台项目中,使用RecyclerView实现了仿猫眼的电影选择控件,如下图所示:以上图为例,我们的需求如下:1、每一次滑动都让图片保持在中间。2、第一张图片的左边距和最后一张的右边距需...
2019-03-20 10:43:11
1025
3
原创 OpenCV 人脸跟踪
简介 OpenCV是一个基于BSD许可开源发行的跨平台计算机视觉库。拥有C++,Python和Java接口,并且支持Windows, Linux, Mac OS, iOS 和 Android系统。实现了图像处理和计算机视觉方面的很多通用算法。模块功能Core 核心基础模块,定义了被所有其他模块和基本数据结构(包括重要的多维数组Mat)使用的基本函数、底层数据结构和算法函数Imgproc...
2019-03-19 10:15:30
1071
原创 Android 原生绘制
SurfaceView Activity的View hierachy的树形结构,最顶层的DecorView,也就是根结点视图,在SurfaceFlinger中有对应的Layer。 对于具有SurfaceView的窗口来说,每一个SurfaceView在SurfaceFlinger服务中还对应有一个独立的Layer,用来单独描述它的绘图表面,以区别于它的宿主窗口的绘图表面。 在WMS和S...
2019-03-18 17:42:18
608
原创 2019年,BAT大厂Android 高级面试题及答案
2019年,BAT大厂Android 高级面试题及答案1.如何对 Android 应用进行性能分析android 性能主要之响应速度 和UI刷新速度。可以参考博客:Android系统性能调优工具介绍首先从函数的耗时来说,有一个工具TraceView 这是androidsdk自带的工作,用于测量函数耗时的。UI布局的分析,可以有2块,一块就是Hierarchy Viewer 可以看到Vie...
2019-03-15 18:00:40
1312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人