自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

转载 Android高级工程师面试实战,您会挂么?

xxx公司面试总结面试形势群聊(2个面试官+HR+自己)面试流程自我介绍面试官根据你的介绍开始问你对我们公司有什么想了解的么(复活卡,要时回到没有了也就没有了,可以让面试官给自己提一下建议)面试题回忆,没有先后顺序项目架构,组件化架构(他反而没问插件化)Android 事件分发机制(问到源码调用细节)反射怎么调用一个类的私有方法(这里也是问细节,2个方法的区...

2019-03-19 16:30:00 289

转载 Android热修复技术原理详解(最新最全版本)

本文框架什么是热修复?热修复框架分类技术原理及特点Tinker框架解析各框架对比图总结  通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。一、什么是热修复?正常开发流程热修复开发流程热修复优势修复什么?二、热修复框架分类现状:百花齐放百家争鸣简单分类更合理的分类...

2018-03-11 13:43:00 235

转载 Android热修复框架之优逆势分析(Hotfix)

重新整理了一篇更详细的,请移步 Android热修复技术原理Android平台出现了一些优秀的热更新方案,主要可以分为4类:基于Instant Run 热插拔方案:美团的Robust(实时修复)  Robust插件对每个产品代码的每个函数都在编译打包阶段自动的插入了一段代码,对方法进行了Hook,类似AOP的方式。基于multidex的热修复方案:代表有Qzone的超级补丁...

2018-01-19 18:06:00 227

转载 屏幕旋转时调用PopupWindow update方法更新位置失效的问题及解决方案

   接到一个博友的反馈,在屏幕旋转时调用 PopupWindow 的 update 方法失效。使用场景如下:在一个 Activity 中监听屏幕旋转事件,在Activity主布局文件中有个按钮点击弹出一个 PopupWindow,另外在主布局文件中有个ListView。测试结果发现:如果 ListView 设置为可见(visibile)的话,屏幕旋转时调用的 update 方法无效,...

2017-12-12 20:30:00 718

转载 快速搭建一个本地的FTP服务器

快速搭建一个本地的FTP服务器  如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试。第一步:配置IIS Web服务器1.1 控制面板中找到“程序”并打开1.2 程序界面找到“启用或关闭Windows功能”并打开1.3 上面两步也可以简化为一步:按【Win + R】快捷键打开运行对话框,输入“optionalfeatures”后,按回车键...

2017-12-06 12:09:00 3113

转载 Android性能优化之启动速度优化

Android性能优化之启动速度优化  Android app 启动速度优化,首先谈谈为什么会走到优化这一步,如果一开始创建 app 项目的时候就把这个启动速度考虑进去,那么肯定就不需要重新再来优化一遍了。这是因为在移动互联网时代,大家都追求快,什么功能都是先做出来再说,其他的可以先不考虑,先占据先机,或者验证是否值得做。那为什么要这么做呢?我个人的观点有以下几点如果 app 不能...

2017-10-24 20:19:00 295

转载 Android辅助功能原理与基本使用详解-AccessibilityService

辅助功能原理与基本使用详解本文主要介绍辅助功能的使用辅助功能基本原理辅助功能基本配置和框架搭建辅助功能实战解析一、辅助功能基本原理  辅助功能(AccessibilityService)其实是一个Android系统提供给的一种服务,本身是继承Service类的。这个服务提供了增强的用户界面,旨在帮助残障人士或者可能暂时无法与设备充分交互的人们。  从开发者的角度看,其实...

2017-08-30 22:46:00 1285

转载 Android高效内存之让你的图片省内存

Android高效内存之让你的图片省内存 在做内存优化的时候,我们发现除了解决内存泄露问题,剩下的就只有想办法减少真实的内存占用。而在App中,大部分内存可能被我们图片占用了,所以减少图片的内存占用可以带来直接的效果。一、一张图片到底占用多少内存  我们先假设我们有一张图片是600 * 800像素的,图片磁盘占用空间大小假设是 100KB。图片内存大小跟磁盘占...

2017-07-28 12:20:00 148

转载 AccessibilityService+WindowManager+SurfaceView开系统权限

一种通过自动获取用户权限增强产品体验的方法  本文是基于辅助功能+悬浮窗+SurfaceView来实现自动获取用户权限的具体方案设计与实现。辅助功能抢红包插件相信大家并不陌生,但是微信官方不允许,但是在工具软件领域还是可以大显身手,特别是开权限。辅助功能的作用就是实现节点查找和模拟点击,而悬浮窗实现需要的蒙层遮罩效果,SurfaceView则是实现流程的过渡动画。1、 什么是...

2017-07-26 22:05:00 390

转载 Android高效内存1:一张图片占用多少内存

  在做内存优化的时候,我们发现除了解决内存泄露问题,剩下的就只有想办法减少真实的内存占用。而在App中,大部分内存可能被我们图片占用了,所以减少图片的内存占用可以带来直接的效果。本文就简单介绍一张图片到底占用多少内存,我们先假设我们有一张图片时 600 * 800 的,图片占用空间大小假设是 100KB。另外本文知识点也是面试官喜欢问的一个点,看看自己的回答到什么级别了。图片内存大...

2017-06-07 21:16:00 238

转载 Android高效内存2:让图片占用尽可能少的内存

Android高效内存:让图片占用尽可能少的内存一、让你的图片最小化1.1 大图小图内存使用情况对比大图:440 * 336    小图:220 * 168 资源目录:xhdpi小图的高宽都是大图的1/2-->小图是原图的1/4界面效果: 测试设备:Coolpad   8676-M01   5.1   density=2.0测试前准备操作:同一款设备,设置图片前后多...

2017-04-26 18:22:00 201

转载 Android 7.0 PopupWindow 又引入新的问题,Google工程师也不够仔细么

Android7.0 PopupWindow的兼容问题  Android7.0 中对 PopupWindow 这个常用的控件又做了一些改动,修复了以前遗留的一些问题的同时貌似又引入了一些问题,本文通过在7.0设备上实测并且结合源码分析,带你了解关于 PopupWindow 的相关改动。  Android7.0 中下面两个问题解决了,这里强调一下,不是说从 Android7.0 开始才...

2017-02-23 18:34:00 2174

转载 Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

Android XML shape 标签使用详解  一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景。但是,也肯定也有人在能使用 Drawable 的地方选择使用一张 png 图(或者是一张 .9 图)作为 View 的背景,因为后者把问题交给 UI 设计人员去了,省事。当然,使用图片这种在...

2016-12-30 19:43:00 284

转载 Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)

  指纹识别这个名词听起来并不陌生,但是实际开发过程中用得并不多。Google从Android6.0(api23)开始才提供标准指纹识别支持,并对外提供指纹识别相关的接口。本文除了能适配6.0及以上系统,主要还提供6.0以下设备适配解决方案。指纹识别用途大概列举几个指纹识别的用途系统解锁应用锁支付认证普通的登录认证指纹识别Google官方文档官方标...

2016-11-14 22:49:00 380

转载 Android重构与设计之路,从整理提示弹窗(SmartAlertPop)开始

  封装一个独立弹窗Module,这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗。提供一种管理项目里面弹窗的方案,便于后期修改和维护。  首先描述一个在大项目中普遍存在的一个现象:由于项目的功能多,负责功能的人不同,当功能中需要一个普通的确定取消对话框时,大部分人都选择自己写了一个,自己new一个独立的弹窗出来。这样做的好处有以下几个:代码逻辑独...

2016-11-03 22:56:00 109

转载 小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)

  在一次写博客的过程中,要截取手机app上的几张图片,然后粘贴到博客里面去,不了解这个工具的时候,我就从手机上截图(使用其他的截图app或者使用手机自己的截图功能),然后再传送到电脑上,然后再放到博文中,觉得很繁琐,要是有一个能够与手机交互的PC端工具那不就很方便了么,于是就搜索了一下,无意中就发现这款app,个人觉得很实用,体验上也还不错,所以推荐给读者使用。app名称:小...

2016-10-25 15:16:00 710

转载 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)...

  说到PopupWindow,我个人感觉是又爱又恨,没有深入使用之前总觉得这个东西应该很简单,很好用,但是真正使用PopupWindow实现一些效果的时候总会遇到一些问题,但是即便是人家的api有问题,作为程序员也没有办法,只能去想办法去补救。下面是我在使用过程中发现的关于PopupWindow的几个痛点:  痛点一:不设置背景就不能响应返回键和点击外部消失的,这个我已经有一篇...

2016-10-09 22:20:00 403

转载 Android动画:模拟开关按钮点击打开动画(属性动画之平移动画)

  在Android里面,一些炫酷的动画确实是很吸引人的地方,让然看了就赏心悦目,一个好看的动画可能会提高用户对软件的使用率。另外说到动画,在Android里面支持3种动画: 逐帧动画(Frame Animation)、补间动画(Tween Animation)和属性动画(Property Animation),至于这几种动画的区别这里不再介绍,希望开发者都能在使用的过程中体会两者的不同...

2016-09-04 23:43:00 563

转载 Windows下Git多账号配置,同一电脑多个ssh-key的管理

  这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有一些提到一些基础的操作。  本文以配置github.com账号和git.oschina.net账号来逐步演示在Windows环境下配置Git多账号支持即在同一个电脑上管理多个ssh-key,对git多一分了解。  备注:这篇文章所有执行命令...

2016-08-03 00:01:00 668

转载 Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚使用场景:1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动到底部或者顶部2. ScrollView滚动到顶部或者底部时主动触发一些操作(典型的就是滚动到底部触发自动加载操作)两种方式:1.onScrollChang...

2016-07-26 22:28:00 854

转载 Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面立体旋转分为以下三种:  1.以X轴为轴心旋转  2.以Y轴为轴心旋转  3.以Z轴为轴心旋转--这种等价于android默认自带的旋转动画RotateAnimation实现立体旋转核心步骤:  1. 继承系统Animation重写applyTransformat...

2016-07-18 00:37:00 421

转载 Android来电监听和去电监听

我觉得写文章就得写得有用一些的,必须要有自己的思想,关于来电去电监听将按照下面三个问题展开1、监听来电去电有什么用?2、怎么监听,来电去电监听方式一样吗?3、实战,有什么需要特别注意地方?一、监听来电去电能干什么1、能够对监听到的电话做个标识,告诉用户这个电话是诈骗、推销、广告什么的2、能够针对那些特殊的电话进行自动挂断,避免打扰到用户二、来电...

2016-07-07 17:35:00 135

转载 Android 源码下载方法(Git 方式clone)

Android源码对于Android开发者来说,迟早有一天你会用到的,所以就记录一下,分享给读者,希望对读者有用这里需要使用到Git相关知识,不清楚的可以先阅读,了解的可以跳过Git-TortoiseGit完整配置:http://www.cnblogs.com/popfisher/p/5466174.html下面通过四个步骤完成platform/frameworks...

2016-07-02 16:08:00 330

转载 HandlerThread 创建一个异步的后台线程

使用HandlerThread几大优点:1、制作一个后台异步线程,需要的时候就可以丢一个任务给它,使用比较灵活;2、Android系统提供的,使用简单方便,内部自己封装了Looper+Handler机制;3、可以代替Thread + Looper + Handler的写法;4、可以避免项目中随处可见的 new Thread().start(),增加系统开销;使用...

2016-07-01 19:42:00 113

转载 Android Toast cancel和show 不踩中不会知道的坑

说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景:1、连续点击一个按钮,每次都产生一个新的Toast并且调用show方法  问题:触发了toast以后,toast内容会一直排着队的显示出来,不能很快的消失2、连续点击一个按钮,缓存一个Toast,每次都调用show方法  推荐:这种方式体验感觉最好,Toast消失的计时会从最后一次show之后才...

2016-07-01 15:35:00 455

转载 PopupWindow 点击外部和返回键无法消失背后的真相(setBackgroundDrawable(Drawable background))...

刚接手PopupWindow的时候,我们都可能觉得很简单,因为它确实很简单,不过运气不好的可能就会踩到一个坑:点击PopupWindow最外层布局以及点击返回键PopupWindow不会消失新手在遇到这个问题的时候可能会折腾半天,最后通过强大的网络找到一个解决方案,那就是跟PopupWindow设置一个背景popupWindow.setBackgroundDrawable(d...

2016-06-22 21:49:00 313

转载 Android PopupWindow怎么合理控制弹出位置(showAtLocation)

说到PopupWindow,应该都会有种熟悉的感觉,使用起来也很简单// 一个自定义的布局,作为显示的内容Context context = null;  // 真实环境中要赋值int layoutId = 0;      // 布局IDView contentView = LayoutInflater.from(context).inflate(layoutId, ...

2016-06-22 20:39:00 664

转载 Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)

Android GradientDrawable使用优势:  1. 快速实现一些基本图形(线,矩形,圆,椭圆,圆环)  2. 快速实现一些圆角,渐变,阴影等效果  3. 代替图片设置为View的背景  4. 可以减少apk大小,提升用户下载意愿  5. 还可以减少内存占用  6. 方便修改与维护  基于上面几种优势,我们很多时候都会选择使用android的sh...

2016-06-22 12:26:00 450

转载 Java操作Sqlite数据库-jdbc连接

Java操作Sqlite数据库步骤:1. 导入Sqlite jdbc本文使用sqlite-jdbc-3.7.2.jar,下载地址http://pan.baidu.com/s/1kVHAGdD2. 编写jdbc连接代码public class OpSqliteDB { private static final String Class_Name ...

2016-05-16 10:24:00 193

转载 Git-TortoiseGit完整配置流程

  每次使用Git的时候都或多或少遇到些问题,为了方便以后少踩一些坑,把自己踩过的坑记录一下,加深对Git使用的理解,所以写下这篇日记记录一下。  本文需要频繁使用cmd,如果使用系统的cmd会稍微有点不便  所以这里先推荐一款Windows平台上面个人觉得比较好用的一款cmd工具ConEmu  ConEmu下载地址:http://www.fosshub.com/ConEm...

2016-05-06 16:34:00 236

转载 Android监听系统短信数据库变化-提取短信内容

由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路。Android监听系统短信数据库内容变化使用场景:1、监听短信数据库的变化,添加删除修改,变化的时候会回调onChange方法2、提取刚刚变化的那条短信的内容备注:1、这种方式虽然一开始能够监听到数据变化,但是要判断是刚刚接手到的短信,还需要做...

2016-05-03 18:09:00 580

转载 Android 短信拦截及用途分析

监听系统短信这个只能作为一个技术点来研究下,读者可能在工作中可能不会哦涉及到,一般的应用软件也不会有这个需求但是作为程序员呢,多了解一下也是好的。Android 监听系统短信有什么用?1、对系统接收到的短信进行识别,是广告或者是诈骗等2、对短信内容进行过滤或者是对内容进行提取,比如验证码提取3、对系统短信进行拦截,连系统自己都不让收到了(不会出现在系统数据里...

2016-05-03 17:10:00 225

转载 ListView:The content of the adapter has changed but ListView did not receive a notification终极解决方法...

使用ListView时遇到如下的异常信息:10-26 18:30:45.085: E/AndroidRuntime(7323): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. M...

2016-04-07 18:26:00 198

转载 Activity onDestroy() 回调缓慢问题分析及完美解决方案

  说到Activity的onDestroy,对所有的Android开发者都很熟悉,但是不一定都知道里面存在着一些坑,分享给大家,以后踩中的时候可以应急用Activity的时候,会发现如下问题:  有时候会发现Activity的onDestroy方法回调比较缓慢(可以达到好几秒钟之后才调用),即使之前使用finish方式关闭Activity也一样onDestroy回调慢带来什...

2016-04-07 18:25:00 1841

转载 获取View的截图-将View转换为Bitmap对象

开发中,有时候需要获取View的截图来做动画来达到动画流程的目的原理:将View的内容画到一个Bitmap画布上,然后取出下面封装了一个从View生成Bitmap的工具类/** * 将View转换为Bitmap对象 */public class ViewToBitmapUtil { private static final String TAG ...

2016-03-23 15:30:00 119

转载 Android正则表达式使用及性能隐患分析

场景:找出一个关键词在一条短信中出现的次数使用正则的实现方式:public static int findKeyWordCount(String srcText, String keyword) { int count = 0; Pattern p = Pattern.compile(keyword); Matcher m = p.matcher...

2016-02-24 12:20:00 241

转载 Android Activity返回键控制的两种方式

Android Activity返回键监听的两种方式1、覆写Activity的OnBackPressed方法官方解释:Called when the activity has detected the user's press of the back key.The default implementation simply finishes the curren...

2016-02-15 20:02:00 766

转载 Android TextView 添加下划线的几种方式

总结起来大概有5种做法:1. 将要处理的文字写到一个资源文件,如string.xml(使用html用法格式化)2.当文字中出现URL、E-mail、电话号码等的时候,可以将TextView的android:autoLink属性设置为相应的的值,如果是所有的类型都出来就是android:autoLink="all",当然也可以在java代码里 做,textView01.s...

2016-02-15 20:00:00 1776

转载 android gridview几个重要属性(android:listSelector自带内部padding分析)

一、android:scrollbarStyle 决定状态条的位置 常用属性outsideOverlay,滚动条在最外层,gridview设置的padding在滚动条的内侧二、android:stretchMode 决定怎么分配剩余的空间spacingWidth 除去griditem和gridview的左右padding,剩余的空间total...

2016-02-15 19:58:00 285

转载 ADB server didn't ACK

[2015-05-29 11:55:03 - adb] ADB server didn't ACK[2015-05-29 11:55:03 - adb] * failed to start daemon *[2015-05-29 11:55:03 - ddms] 'G:\android\android-sdk-forL\platform-tools\adb.exe,sta...

2016-02-15 19:56:00 80

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除