![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员
迪士尼在逃大学生
3年Java,7年Android开发经验,长期混迹在一线城市,拥有丰富的开发以及管理经验; 《Android开发入门与实战第二版》作者之一
展开
-
一口气说出 6种 延时队列的实现方案,大厂offer稳稳的
下边会介绍多种实现延时队列的思路,文末提供有几种实现方式的 github地址。其实哪种方式都没有绝对的好与坏,只是看把它用在什么业务场景中,技术这东西没有最好的只有最合适的。一、延时队列的应用什么是延时队列?顾名思义:首先它要具有队列的特性,再给它附加一个延迟消费队列消息的功能,也就是说可以指定队列中的消息在哪个时间点被消费。延时队列在项目中的应用还是比较多的,尤其像电商类平台:1、订单成功后,在30分钟内没有支付,自动取消订单2、外卖平台发送订餐通知,下单成功后60s给用户推送短信。3、如果订原创 2020-05-08 20:32:00 · 208 阅读 · 0 评论 -
一口气说出 6种,@Transactional注解的失效场景,面试官都蒙了
引言昨天朋友咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以今天简单的和大家分享一下@Transactional相关的知识。@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。一、事务事务管理在系统开发中是不可缺少的一部分,Spring原创 2020-05-08 17:41:09 · 307 阅读 · 0 评论 -
为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?
原文作者:依然范特稀西0. 前言前几天啊,在公众号发了一篇文章《优化ApK大小之ABI Filters 和 APK split》,评论区收到了一些留言说,文章讲得不够深入,关于系统是如何选择不同abi下的so库的?当前APP该如何适配?该去掉哪些该保留哪些?都存在一些疑问。因此,决定亲自更文一篇,系统地讲一下关于Android CPU架构方面的一些东西,以及结合大厂APP如微信、支付...原创 2020-05-07 17:02:44 · 512 阅读 · 0 评论 -
面试官没想到一个Volatile,我都能跟他怼半小时
原文作者:敖丙Volatile可能是面试里面必问的一个话题吧,对他的认知很多朋友也仅限于会用阶段,今天我们换个角度去看看。先来跟着丙丙来看一段demo的代码你会发现,永远都不会输出有点东西这一段代码,按道理线程改了flag变量,主线程也能访问到的呀?为会出现这个情况呢?那我们就需要聊一下另外一个东西了。JMM(JavaMemoryModel)JMM:Java内存模型,是java虚...原创 2020-05-07 16:26:32 · 262 阅读 · 0 评论 -
大家都在说去大厂,那我说说怎么去小厂拿到offer吧?
01 前言 & 吐槽为什么要起这个标题? 一般不都是说怎么去大厂吗? 小厂有啥好说的? 钱少、事多,技术落后,学不到东西,还加班。 谁他么不能进?一找工作,发现还真有点难。 因为竞争的人,好像有点多。我靠,原来这么多人都只能去小厂???而我们在网上看到的面试文章画风都是这样的:《大厂程序员面试逻辑题面面观》 《阿里P7一定难吗?》 《我是怎样拿到阿里、腾讯、滴滴、京东offer的...原创 2020-05-06 16:52:15 · 1163 阅读 · 0 评论 -
阿里年薪40W程序员是怎样理解KMP模式匹配算法的
前言不管是什么编程语言,字符串可能不是基本类型之一,但一定都是最常用的数据类型之一,对于字符串的操作是程序设计中最常见的行为。在所有对字符串的操作中,字符串的查找匹配似乎又是日常编程中最司空见惯的操作,无论是后端程序根据用户所提交的搜索关键字来匹配,并返回搜索候选内容。还是前端程序根据用户输入的关键字,高亮显示匹配的字符串。所谓的字符串匹配,就是在一段字符主串中,去匹配和模式串在每个位置上的...原创 2020-05-06 16:18:25 · 143 阅读 · 0 评论 -
Android开发:善于将系统源码为己用,会“抄”也是技能!
作者:小缘起源于一位同事问我:“怎么优雅的监听双击”这个行为?其实很多类似的事件相关的,我们都可以参考系统源码,因为有时候完全引入系统能力有些麻烦,我们可能就想顺手实现一个功能。第一次看我文章的小伙伴可以关注一下我,每天更新各种技术干货,分享更多最热程序员圈内事。例如上面同事问的:怎么优雅的监听双击?相信大家或多或少都有一些实现方案,不过系统有给我们提供GestureDete...原创 2020-05-06 15:35:31 · 180 阅读 · 0 评论 -
2020年GitHub 上那些优秀Android开源库,这里是Top10!
原文作者:依然范特稀西前言2020年有哪些优秀的开源库呢?本期就为大家带精选的10个,排名不分先后。No1. LiquidSwipe这是一个很棒的ViewPager库,它在浏览ViewPager的不同页面时,显示波浪的滑动动画,效果非常炫酷。该库的USP是触摸交互的。这意味着在视图中显示类似液体的显示过渡时,应考虑触摸事件。1.1如何使用呢?导入以下Gradle依赖项:imple...原创 2020-04-30 20:23:02 · 704 阅读 · 0 评论 -
2020年的Android 虚拟机都可以这么用了 ?
原文作者:秉心说TM说实话,我其实很少使用 Android Studio 自带的 Emulator 。一来巨慢(电脑太渣),二来 IDE 全屏的时候不能直接查看,还得快捷键切来切去,甚是麻烦。在最新的 Android Studio 4.1 Canary 8 中,直接内置了 Emulator 。你可以在 IDE 内部直接运行 Emulator,而不再是一个单独的应用了。来一张官网上的图片给你...原创 2020-04-30 16:57:23 · 576 阅读 · 0 评论 -
2020年必须了解:能够让你升职加薪的移动应用开发趋势
前言在当今的互联网潮流中,仅仅拥有移动设备是不够的,移动应用的开发逐渐变得多元化和混合复杂化,在2019年大放异彩的流行应用,2020年可能就没有那么出风头了。如果仅仅只是掌握了正确的移动应用开发策略并不能保证移动应用的成功,你需要多了解最新的移动应用开发趋势。那么有哪些方面需要了解和关注的呢?本文将详细讲解需要关注的一些技术动态,仅供我们参考未来的移动应用程序的发展方向,这些技术有助于帮助...原创 2020-04-30 16:33:42 · 991 阅读 · 0 评论 -
阿里二面:关于 Retrofit 你知道多少?看完你的offer稳了
一、整体思路从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的, 实现方案上有什么技巧,有什么范式。全文基本上是对 Retrofit 源码的一个分析与 导读,非常建议大家下载 Retrofit 源码之后,跟着本文,过一遍源码。二、基本用例2.1 创建 Retrofit 对象 Retrofit retrofit = new Retrofit.Builder() ...原创 2020-04-29 20:56:33 · 194 阅读 · 0 评论 -
暗黑2020年,Android程序员如何让自己更值钱?拿下高薪offer?
我们做Android程序员的,在过去的十几年,搭上了移动互联网高速发展的快车,分享了大量的行业红利。如今,市场趋于稳定,未来想要赚更多的钱,你得重新找到一个让你能变得更值钱的途径。否则,你未来的薪资不升反降也不是没有可能。第一次看我文章的小伙伴可以关注一下我,每天更新各种技术干货,分享更多最热程序员圈内事。带你先来看下全局情况。从1月15日猎聘发布的《2019年度中高端人才盘点数据报告》...原创 2020-04-29 19:52:31 · 380 阅读 · 1 评论 -
别再问我2020年Android前景如何了,我都回答腻了…
Android现在行情怎么样啦?Android的前景到底怎么样?现在学Android还能不能找到工作啊?第一次看我文章的小伙伴可以关注一下我每天更新各种技术干货,分享更多最热程序员圈内事。还有那种把大环境大趋势大方向大前提再分析一篇,搞得好像行业的发展是他控制的一样。手动狗头~蜜汁尴尬……[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fsMC0qDN-...原创 2020-04-29 17:31:34 · 1520 阅读 · 1 评论 -
阿里架构师亲谈:Android程序员面试必过的秘籍
前言不是要你给出每一个问题的标准答案,而是要你给出这个问题的你的、自己的答案。一 关于简历面试首先要提到的就是简历,简历这个东西真的是一个很深奥的事情,为什么深奥,其实是对像和我这样的人深奥:学历不好、工作经历不好。当然,这和目前技术研发人才需求的大环境也有关系,而且上述两点会越来越影响简历的通过性。说一个真实的事情大家就有概念了,这是一个前同事私下告诉我的,他比我先一年多离开公司,然后到了...原创 2020-04-28 17:49:17 · 195 阅读 · 0 评论 -
Android:LiveData概述
LiveData 是一个可观察的数据持有者类。与常规observable不同,LiveData是生命周期感知的,这意味着它尊重其他应用程序组件的生命周期,例如活动,片段或服务。此感知确保LiveData仅更新处于活动生命周期状态的应用程序组件观察者注意:要将LiveData组件导入Android项目LiveData将一个由Observer类表示的观察者视为生命周期处于STARTED或处于...原创 2020-04-28 17:40:17 · 189 阅读 · 0 评论 -
教你怎么正确在Flutter中嵌入Native组件
引言在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择。本文希望向大家介绍AndroidView的使用方式以及在此基础之上拓展的双端嵌入Native组件的解决方案1. 使用教程1.1. DemoRun嵌入地图这一场景可能在很多App中都会存在,但是现在的地图SDK都没有提供Flutter的库,而自己...原创 2020-04-28 17:15:07 · 301 阅读 · 0 评论 -
【详细整理】常见Android面试题及答案
以下是一些常用的Android面试题及答案,有需要没需要都可以备着,希望能帮到大家。【想看更多相关面试题及答案请关注下哟】1. 请描述一下Activity 生命周期。答: 共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(), onResume(), onPause(),onStop(), onDestroy()。onCreate(): 创...原创 2020-04-28 16:53:02 · 161 阅读 · 0 评论 -
Android面试题合集【下】
51.ListView 如何定位到指定位置可以通过 ListView 提供的 lv.setSelection(listView.getPosition())方法。52.如何在 ScrollView 中如何嵌入 ListView通常情况下我们不会在 ScrollView 中嵌套 ListView。在 ScrollView 添加一个 ListView 会导致 listview 控件显示不全,通...原创 2020-04-28 16:27:42 · 427 阅读 · 0 评论 -
Android面试题合集【上】
Android面试题Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。这里会不断收集和更新Android基础相关的面试题,目前已收集100题。1.Android系统的架构Android系统架构之应用程序Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短...原创 2020-04-28 16:14:05 · 519 阅读 · 0 评论 -
作为Android 开发者该如何进阶?
经常在简书和微信上收到一些同学的私信,说自己马上毕业或者已经毕业一年,从事Android开发相关的工作,现在不知道要学习什么东西了。或者说自己也在摸索着学习,但是不知道学习的路线对不对,感觉很迷茫,想让我给一些建议。其实大多数的开发者都有过类似的经历(我也有过),当自己项目完成、处于维护阶段的时候,工作不忙,想自己学习,但是又不知道学什么?从何学起?东一榔头西一棒子,最终收获甚少。然后开始自我怀...原创 2020-04-28 15:37:52 · 189 阅读 · 0 评论 -
老板知道我想跳槽了,该怎么办?
最近不知道怎么的,突然冒出来一个想法:我想跳槽了总结了马云爸爸的两句话:跳槽要么是钱没给够,要么是受了委屈一.首先请思考一个问题:在你眼中“跳槽”包括哪些内容?我给自己分析了一下,希望对有想法跳槽的道友有所帮助很多朋友都想要跳槽,但是对“跳槽”的理解可 能仅限于“写简历、面试”。在这次跳槽前,我也这么认为的。那时候工作不顺利,正好在一个群里看到有公司招聘,就发了简历过去,面完试自己感...原创 2020-04-27 17:56:13 · 1647 阅读 · 0 评论 -
Android实践:应用保活怎么组合运用
最近在做的项目中需要app在后台常驻,用于实时上传一些健康信息数据,便于后台实时查看用户的健康状况。自从Android7.0以上后台常驻实现越来越难,尤其是8.0及以上。关于保活的文章比比皆是,但是效果并不理想,关于保活的方法也就常说的哪几种,重点在于怎么组合运用。最终实现效果为:用户不主动强制杀死的话,能够一直存活(小米,华为,vivo,oppo,三星)。其中三星s8,华为nova2s用户强制...原创 2020-04-27 16:26:50 · 157 阅读 · 0 评论 -
以微信SDK为例的Flutter 插件开发
就像 React Native 一样,在 Flutter 应用中,如果需要调用第三方库的方法或者有一些功能需要使用原生的开发来提供,使用 Flutter Plugin 是一种不错的方式,它本质上就是一个 Dart Package,但与其它的 package 不同点在于,Flutter 插件中一般都存在两个特殊的文件夹:android 与 ios,如果需要编写Java、Kotlin或者 Object...原创 2020-04-26 20:15:23 · 182 阅读 · 0 评论 -
如何使用NavigationUI更新UI组件
导航架构组件包括一个NavigationUI 类。此类包含使用顶部应用栏,导航抽屉和底部导航管理导航的静态方法。一、听取导航事件与the进行交互NavController 是在目的地之间导航的主要方法。该NavController 负责更换的内容NavHost 与新的目的地。在许多情况下,UI元素 - 例如顶级应用栏或其他持久性导航控件在BottomNavigationBar外部也是如此 - ...原创 2020-04-26 19:34:56 · 197 阅读 · 0 评论 -
面试官说分片显示加载100M的图片撑不爆内存 我笑了
还记得当年面试一个面试官问我怎么加载巨图才能不撑爆内存,我没回答上来,他说分片显示,我寻思特么分片能减少内存使用??现在可以打他脸了!内容扩展1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?2.内存中如果加载一张 500*500 的 png 高清图片.应该是占用多少的内存?3.Bitmap 如何处理大图,如一张 30M 的大图,如何预防 OOM?A...原创 2020-04-26 17:34:10 · 367 阅读 · 0 评论 -
Android进阶:子线程中使用 Toast 及其原理
一般我们都把Toast当做一个UI控件在主线程显示。但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示。但是子线程中真的不能直接显示Toast吗?答案是:当然可以。那应该怎么操作呢?在当前线程中先初始化一个Looper即可!Looper.prepare();Toast.makeText(getBaseContext(), "text", Toast.LENGT...原创 2020-04-26 16:33:54 · 572 阅读 · 0 评论 -
Android进阶:自定义动画的音频抖动效果
自定义动画效果——音频抖动效果绘制一个矩形:想要绘制一个矩形,继承View,并重写onDraw方法即可。复杂一点还可以重写onMeasure方法和onLayout方法进行大小测量和位置测量。但本文不打算写那么复杂的view,故只需要重写一个onDraw方法即可: private RectF rectF = new RectF();//绘制矩形 private float lineWi...原创 2020-04-26 16:06:40 · 454 阅读 · 0 评论 -
Android进阶:快速实现自定义阴影效果
网话说UI设计有三宝 :透明,阴影,加圆角。很多UI在做设计的时候都喜欢做卡片形式,然后添加阴影。卡片UI确实挺好看,但是对Android开发者来说,显示阴影却并不那么手到擒来,因为Android对阴影没有做出很好的支持。CardView谷歌也许早就注意到了UI的三宝之一阴影,于是开发了一个继承FrameLayout的CardView公开发这使用,这个控件虽然在v7包里,但是需要单独添加依...原创 2020-04-26 15:42:54 · 240 阅读 · 0 评论 -
Android进阶:快速了解Android打包编译流程
从事Android高级研发,怎能不知道Android的打包流程呢?今天就为大家讲解Android打包的流程:Android 构建系统编译应用资源和源代码,然后将它们打包成可测试、部署、签署和分发的 APK。一般使用 Android Studio开发的时候使用Gradle构建工具包来自动执行和管理构建流程,同时也可以灵活地自定义构建配置。Gradle 和 Android 插件独立于 Andr...原创 2020-04-26 14:50:59 · 149 阅读 · 0 评论