自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(485)
  • 资源 (1)
  • 收藏
  • 关注

原创 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?

昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...

2019-11-05 21:35:50 83836 200

原创 耗时精心整理的Android核心知识点姗姗来迟(建议收藏)

目录:Java 基础&容器&同步&设计模式Java 虚拟机&内存结构&GC&类加载&四种引用&动态代理网络Android 基础&性能优化&FramworkAndroid 模块化&热修复&热更新&打包&混淆&压缩音视频&FFmpeg&播放器1、Java 基础&容器&同步&设计模式StringBuilder、StringBuffer、

2020-10-13 21:24:53 54

原创 字节跳动(Android岗)三面+hr面的面经之旅(已OC)

前言作者:独孤目前Android开发岗位确实没有以前那么火爆了,但是只要你确实有真才实学,想要找一份自己满意的工作还是相当容易的。而如果你是985,211,硕士学历,那么,要拿个相当好的Offer更是不在话下;我是从渣本毕业,实习时是在一家小公司,每天基本的工作都是两三个小时就能完成,而每天没有新的项目可以挑战,整天感觉自己就在摸鱼……这样持续了一年,日子过得很安逸,但是对比了一下曾今的同学薪资基本完成了翻倍,觉得自己在清醒的堕落,于是逼自己沉下心来,把毫无进步空间工作辞了,打算潜心学习一波,.

2020-08-05 18:15:07 640

转载 App为了漂亮脸蛋也要美颜,Theme 与 Style 的使用,附一键变装 demo

前言作为 Android 开发者,不知你是否也有这样的体验,随着项目变得越来越大,各种不同圆角的 shape,不同透明度的 color,不同大小的阴影效果,它们使资源文件越来越多我认为造成这种问题的原因有两个:一个是产品设计的不规范,整个 app 没有统一的设计风格;第二个便是开发者在开发过程中编码的不规范Android Dev Summit '19 有一场关于 Style 与 Theme 的演讲,它的 中文字幕视频在这里我为你整理了每个主题所在的位置时间 内容 02:14

2020-06-28 16:25:56 225

转载 玩玩Flutter Web —— 实现高德地图插件

1.啰嗦几句去年写了一个功能简单的高德地图插件给flutter_deer使用,当时支持了Android与iOS两端。前一阵子有一个issue问是否会支持Flutter Web,当时我有点懵,毕竟js我都不熟。。。不过先记下这个需求,等着有时间了去研究一下。过了一个月,突然想起了这件事。就先去搜索了一下相关资料,发现都是实现的谷歌地图。而这些都使用到了一个google_maps的开源库。这个库其实就是借助js_wrapping封装了谷歌地图的js库,达到使用Dart代码调用js代码的目的。没办..

2020-06-04 22:33:39 542 1

原创 Android一次完美的跨进程服务共享实践

背景最近需要做这样一个事情,一个服务来完成多款App的录音功能,大致有如下逻辑服务以lib的形式集成到各个端 当主App存在时,所有其他App都使用主App的录音服务 当主App不存在时,其他App使用自带录音服务 有优先级,优先级高的App有绝对的录音权限,不管其他App是否在录音都要暂停,优先处理高优先级的App请求 支持AudioRecord、MediaRecorder两种录音方案为什么要这么设计?Android系统底层对录音有限制,同一时间只支持一个进程使用录音的功能 业务需

2020-06-04 22:28:06 110

转载 Android 内存优化

一、重识内存优化Android给每个应用进程分配的内存都是非常有限的,那么,为什么不能把图片下载下来都放到磁盘中呢?那是因为放在 内存 中,展示会更 “快”,快的原因有两点,如下所示:1)、硬件快:内存本身读取、存入速度快。 2)、复用快:解码成果有效保存,复用时,直接使用解码后对象,而不是再做一次图像解码。这里说一下解码的概念。Android系统要在屏幕上展示图片的时候只认 “像素缓冲”,而这也是大多数操作系统的特征。而我们 常见的jpg,png等图片格式,都是把 “像素缓冲” 使用不同的手段

2020-06-03 22:23:27 370

原创 2020年最新Android大厂面试题全集整理,只为你进BAT增强50%的成功率

作者:冯依曾经有一段真挚的......如果上天再给我一次重来一次的机会......等等....跑题了java/android从业10年,坎与幸福并存,一路走来,这个世界依旧绚烂可爱!从10年正式踏入软件行业,至今已经10个年头,在个人职业生涯中,遇到了许多挫折和困难,一路走来,依旧庆幸当初的选择;即使人生最低谷也是因为这条路,之后的一路向上,却也是觉得世界绚烂可爱的原因;希望此文对同样也是软件行业的你有所帮助;我大概将截止目前的职业生涯分为十个阶段,因为故事太多(毕竟我.

2020-06-03 21:03:23 335

原创 这种方式教你简单的在Flutter中分离View与Model的方法

问题我们在做Flutter开发的时候主要会在State中加入很多自己的业务逻辑,例如网络请求,数据处理等等,如果你的业务逻辑比较复杂的话会面对着一个越来越膨胀的State。代码的可读性下降,日后维护也越来越困难。这和我们在开发Android的时候遇到巨无霸Activity是同样的问题。解决办法就是分层解耦。Android从MVC进化到MVP/MVVM。Flutter 也有开发者把MVP引入到Flutter来解决这个问题。这里我们来看另一种比较简单的方法。方法我们先来看一下官方的那个原始的Coun

2020-06-02 21:02:56 232

原创 Android 在 Kotlin 中 圆角图片,椭圆角图片的实现

一.效果介绍设置四个圆角的展现和隐藏 控件继承ImageView,可以使用ImageView属性的src和scaleType 设置角度的x和y值,x==y 圆角,x!=y 椭圆角 设置边框的颜色,边框宽度通过src设置的图片会被裁剪,设置准确大小下scaleType会生效先来看下效果吧图片角度有两种方式BitmapShader(图片着色器)和PorterDuffXfermode(图像叠加覆盖的规则)通过对画笔Paint设置shader和xfermode来实现图片的..

2020-06-02 20:56:14 195

原创 国内大厂在移动端跨平台用了哪些框架呢?

本文通过对国内各大厂旗下知名的应用进行分析,大致统计分析各大厂在移动跨平台开发领域的接入情况,同时分析 Android 端应用的 arm 框架、 kotlin 和 androidx 的使用状态。因为效(tou)率(lan)问题,这里只分析 Android 端,因为 Android 使用的情况下 iOS 基本也会接入对应的跨平台架构。因为是个人统计,如有错误或遗漏还请指出。1、微信(v7.0.15)arm框架: arm64-v8a 包含 kotlin、androidx 跨平台框架:fl

2020-06-02 20:29:44 449

原创 Android程序员的你,是不是觉得自己的学习效率越来越低,越来越迷茫了呢?

前言尤其是在最近一段时间内,感觉一天天的时间过得又慢又快,慢的是感觉复工了以后在公司的8.9个小时简直算是煎熬了,快的是常常感觉时间一天天,一月月的过去了,可是发现自己还在原路踏步走。看似每天忙成狗,回头却发现,月复一月,日复一日,薪资没涨一点,年龄越来越大了。不知道时间都到哪里去了,明明是每天兢兢业业的工作,可是怎么就得不到提升呢?其实是我们的学习效率太低,没有合理 的规划而已~image总结了一下为什么效率这么低,完全规划不起来呢?我们在上学以来一直都羡慕那种玩的多但是考的又好的人,..

2020-06-01 22:26:51 157

原创 面试官: 说一下你做过哪些性能优化? 这篇带你搞懂性能优化

前言如果你已经有 2 - 3 年以上开发经验还不懂的怎么去优化自己的项目,那就有点说不过去了,下面是我自己总结的一套通用级别的 Android 性能优化。如果图片不清晰文末可以下载原始 xmind 图。如果你正在找工作, 那么你需要一份 Android 高级开发面试宝典1、 你对 APP 的启动有过研究吗? 有做过相关的启动优化吗?程序员:之前做热修复的时候研究过 Application 的启动原理。项目中也做过一些启动优化。面试官:哦,你之前研究过热修复? (这个时候有可

2020-06-01 20:42:13 426

原创 ViewDragHelper实战,实现滑动解锁

说到滑动解锁,就回到了2012~2014年,iPhone4S、5、5S年代,如今准备踏入2020年,这些年国产机崛起,再也不是公交车上都是iPhone4S的场景。本篇来使用ViewDragHelper实现滑动解锁。成品展示先来分析一下页面的元素背景图 圆角滑道 圆形滑块 闪动提示文字其他一些细节:滑道和圆形滑块之间有些边距,我们使用padding来处理。我们需要自定义的就是第2点,这个滑道包含一个滑块的图片和提示文字,滑块使用原生ImageView即可,而提示...

2020-06-01 15:17:02 114

原创 Android Jetpack - 使用 Navigation 管理页面跳转

简介Navigation 是用来管理 APP 里页面跳转的。起初,我以为它是用来代替 startActivity 的,但其实并不是,大家往下看就知道它的作用了。另外,iOS 的同学可能会有似曾相识的感觉,Navigation 应该是有借鉴 Storyboard 的。使用我们先来看看 Navigation 的实现过程。添加依赖首先,需要使用 Android Studio 3.2 以上版本才能使用 Navigation。在 build.gradle 中添加依赖:implemen

2020-05-29 20:54:15 74

原创 你的ViewPager八成用错了

前言今天的文章内容是关于ViewPager的,很多同学可能会吐槽:怎么还写这种“低级”的内容!为什么?因为绝大多数的同学都用错了,当然这主要的原因是搜索引擎推出来的文章大多都是错的!正文一、错误用法不知道有多少同学是这样用ViewPager的?class TestViewPagerActivity : BaseActivity() { private lateinit var adapter: ViewPagerAdapter private val fragments

2020-05-29 20:43:04 61

原创 Handler 都没搞懂,还谈什么跳槽?

前言做 Android 开发肯定离不开跟 Handler 打交道,它通常被我们用来做主线程与子线程之间的通信工具,而 Handler 作为 Android 中消息机制的重要一员也确实给我们的开发带来了极大的便利。可以说只要有异步线程与主线程通信的地方就一定会有 Handler。那么,Handler 的通信机制的背后的原理是什么?本文带你揭晓。注意:本文所展示的系统源码基于 Android-27 ,并有所删减。小编自己整理了一份Android 核心知识点的文档,里面都是现在比较流..

2020-05-29 17:05:21 178

原创 Android 工程师跳槽面试经验分享

写在前面Android开发的学习进阶需要一份系统的 知识体系 ,在这里,让我们一起携手变成更好的自己!这些经验是我最近四个月,从准备面试到找到合适工作的汗水和泪水,并且还有一份相关的知识点整理成的PDF分享,希望对你们能有帮助!define 跳槽首先请思考一个问题:在你眼中 “跳槽”包括哪些内容?/******** 华丽丽丽的分割线 begin ************//******** 先思考 3 秒再往下看 ************//******** 华丽丽丽的分割

2020-05-29 15:27:27 52

原创 Android开发: 分享利用好Kotlin的特点提高开发效率

Kotlin-first but not kotlin-must谷歌在 I/O 大会上宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选语言后,有更多的安卓程序投入Kotlin的怀抱。 Kotlin的语法糖更加提高了开发的效率,加快了开发速度,使开发工作变得有趣,也让我们有更多时间写注释了(笑)。但是其实对于Kotlin和Java在Android开发上的选择,个人觉得这个除了开发人员对语言的喜好的,同时也会应该到各自语言的魅力和特点,甚至项目的需求以及后续维护等等...

2020-05-28 22:29:26 164

原创 对于线程和线程池还有线程安全的理解

进程和线程进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。他们主要区别是:进程不共享内存,线程可以共享内存。线程:CPU中的Thread: CPU中的线程,我们也叫它们Thread,和OS中的线程的名字一样。他们和cpu相关,常说的4核心8线程就是指cpu线程。CPU的Thread就那么固定几个,是稀缺资源。 操作系统中的Thread: 操作系统中的进程可以很多,进程中的线程就更多了。软件操作系统调度的基本单位是OS的Thread。我们开发中..

2020-05-28 16:26:11 207

原创 腾讯面试官问:你知道什么是AOP吗?AOP与OOP有什么区别,谈谈AOP的原理是什么?

面试官: 你知道什么是AOP吗?AOP与OOP有什么区别,谈谈AOP的原理是什么心理分析:一旦问到aop面试官在开发自己的项目中 肯定是用到了aop切面编程的。这个时候求职者需要格外注意,特别是aop 在编译时的性能优势,apk编译的原理讲起。切勿将aop的概念弄混,一定要将oop面向对象与aop面向切面的场景说出来求职者:aop实现的三大方式(反射 (xutil) apt注解(ButterKnife) aspect (本文即将讲到的)) 说出各自的优缺点一、AOP概念百度百科..

2020-05-27 20:51:03 195

原创 做了6年的Android开发,整理了这份900多页的PDF面试整理,薪资Double!

在我认为,对于Android面试以及进阶的最佳学习方法莫过于刷题+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现面试并不难,其次就是在刷题的过程中有没有去思考,刷题只是次之,这又是一个层次了,这里暂时不提后面再谈。我总结了一系列大厂面试中常问的面试技术点,深入解析以及答案,将为最近准备面试的各开发者去大厂保驾护航,何谓面试? 博主所理解的面试,它是一个过程,是不断沉淀、不断总结、善于传达自己的专业领域技术以及解决问题能力的过程。以下是博主总结的

2020-05-27 19:53:11 101

原创 Android开发大佬的Offer收割之旅,从字节跳动到BAT

对于面试的准备,算法建议对着牛客网刷下《剑指Offer》和《算法》,然后之前项目中用到的第三方框架,了解其核心实现流程和框架特色与一些实现比较巧妙的细节。对于Java基础,推荐《深入理解Java虚拟机》《Effective Java》《Java并发编程之美》,Android推荐阅读《Android开发艺术探索》和《Android 源码设计模式解析与实战》,Android这两本都是点到为止,没有特别的深入,可以作为一个目录纲领,引子,借此做更深入的学习。除此之外对于之前所做过的项目,写在简历上的项目都要做深.

2020-05-26 22:23:57 160

原创 我是如何一步一步爬上 “64K限制” 的坑 | 经验贴

初衷分享这个填坑的记录,主要是感觉身边很多 Androider 都会遇到和我一样的场景。遇到一个 BUG ,优先按照自己经验修复 修复不了了,开始 Google(不要百度,再三强调),寻找一切和我们 BUG 相似的问题,然后看看有没有解决方案 尝试了很多解决方案,a 方案不行换 b 方案,b 方案不行换 c 方案... 知道没有方案可以尝试了,开始绝望... 如果影响不大,那就丢在项目里(估计也没人发现),如果影响很大,那只能寻找别人帮助,如果别人也给不了建议,那就原地 ????其实无论影响

2020-05-26 22:19:40 229

原创 Android Bitmap图片优化分析

图片在移动开发中占据中举足轻重的地位,早期的android 应用页面Ui相对简单,但随着Android系统不断的升级发展, 界面元素越来越丰富,用户对体验要求越来越高,UI小姐姐们需要设计出精致的界面元素,其中不乏很多好看的图片,但是随着手机性能提升(分辨率,cpu主频,内存等),图片质量也越来越大,拍个照动不动就3M,4M,8M, 大家都知道,android 应用在创建进程时候,会分配一个指定的内存大小,准确的说话是 google原生OS的默认值是16M,但是各个厂家的系统会对这个值进行修改,如果我们应用

2020-05-26 22:12:51 125

原创 腾讯--组件化如何实现,组件化与插件化的差别在哪里,该怎么选型

面试官: 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型心理分析:面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化,在过去经验有没有运用过这些技术到项目中,这道题属于一个连环炮。求职者该格外小心**求职者:**应该从App开发的需求来定义技术选型,分别说说模块化,组件化 插件化的优势和区别一、组件化组件化,就是把APP拆分成不同功能模块,形成独立组件,让宿主调用。 组件化不一定是插件化,组件化是一个更大的概念:把模块解耦,组件之间代码不依赖,宿主可以依赖组件.

2020-05-25 17:47:14 302

原创 腾讯---谈一谈Binder的原理和实现一次拷贝的流程

面试官: 谈一谈Binder的原理和实现一次拷贝的流程心理分析:能问出该问题,面试官对binder的理解是非常深入的。想问求职者对Android底层有没有深入理解**求职者:**应该从linux进程通信原理的两次拷贝说起,然后引申为什么binder却只有一次拷贝 ,最后阐述内核空间 与用户空间的定义1 Linux 下传统的进程间通信原理了解 Linux IPC 相关的概念和原理有助于我们理解 Binder 通信原理。因此,在介绍 Binder 跨进程通信原理之前,我们先聊聊 Li.

2020-05-25 17:45:38 74

原创 腾讯---Linux自带多种进程通信方式,为什么Android都没采用二偏偏使用Binder通信

面试官: Linux自带多种进程通信方式,为什么Android都没采用而偏偏使用Binder通信心理分析:面试官绝对不会现场让你分析binder的源码,源码又深又广,没有面试官会傻到让你分析binder所有的机制。他会问你为什么不采用linux。 从这个地方会看出你对binder有多深。这道题往往是面试Android高级的必考题。所以小伙伴们需要格外的注意**求职者:**应该从 linux自带的进程通信说起。然后各个击破 指出在Android这种特殊系统上的不足。最后引入binder...

2020-05-25 17:22:32 50

原创 腾讯---ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么

面试官: ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么心理分析: ButterKnife框架一直都是使用,很少又开发者对butterknife深入研究的,既然你是面试Android高级岗位,自然需要有相应被问到原理的准备,面试官想问你对注解处理器了解多少,Android编译流程有多少认识**求职者:**应该从 注解处理器原理 与优势说起,肯定注解处理器对解放生产力的作用。然后可以引申常见的 Butterknife,Dagger2,DBFlow。这才是加分项.

2020-05-24 22:03:05 80

原创 腾讯---synchronize关键字在虚拟机执行原理是什么,能谈一谈什么是内存可见性,锁升级吗

面试官: synchronize关键字在虚拟机执行原理是什么,能谈一谈什么是内存可见性,锁升级吗心理分析:面试官一定是想深入考你并发的内容,看你究竟有没有做过并发处理,大多数开发者在开发App时往往会忽略调并发处理 ,这道题会难住绝大多数人。**求职者:**应该存 锁的执行原理,锁优化 ,和java对象头说起锁的内存语义synchronized的底层是使用操作系统的mutex lock实现的。**内存可见性:**同步快的可见性是由“如果对一个变量执行lock操作,将会清空.

2020-05-24 21:51:33 99

原创 腾讯-谈谈volatile关键字与synchronized关键字在内存的区别

volatile关键字与synchronized关键字 作为Android开发者 我们总是傻傻的分不清。这一小节中,我们从腾讯面试中给大家讲解他们之间的作用和区别,在了解他们区别之前 我们得看看什么是线程安全性线程安全性:线程安全性包括两个方面,①可见性。②原子性。1、线程之间的通信:线程的通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种共享内存和消息传递。(1)在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状.

2020-05-24 21:47:00 153

原创 腾讯-数据库版本如何单独升级,并且将原有数据迁移过去

在我们开发的应用中,一般都会涉及到数据库,使用数据的时候会涉及到数据库的升级、数据的迁移、增加行的字段等。比如,用户定制数据的保存,文件的端点续传信息的保存等都会涉及到数据库。​ 我们应用第一个版本是V1.0,在迭代版本V1.1 时,我们在数据库中增加了一个字段。因此V1.0的数据库在V1.1版本需要升级,V1.0版本升级到V1.1时原来数据库中的数据不能丢失,​ 那么在V1.1中就要有地方能够检测出来版本的差异,并且把V1.0软件的数据库升级到V1.1软件能够使用的数据库。也就是说,要在...

2020-05-24 21:41:40 92

原创 腾讯--增量升级为什么减少升级代价,增量升级原理

在前几年,整体移动网络环境相比现在差很多,加之流量费用又相对较高,因此每当我们发布新版本的时候,一些用户升级并不是很积极,这就造成了新版本的升级率并不高。而google为了解决了这个问题,提出了Smart App Update,即增量更新(也叫做差分升级)。尽管现在网络环境有了很大的提升,但一个不争的事实就是应用越做越大,因此,增量更新在目前的仍然是一种解决APP更新包过大的有效方案。今天,我们就来聊聊增量更新。什么是增量更新?增量更新的关键在于如何理解增量一词。来想想平时我们的开发过程,往.

2020-05-24 21:37:21 135

原创 腾讯-热修复连环炮(热修复是什么 有接触过tinker吗,tinker原理是什么)

热修复是什么答:热修复无疑是这2年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的app中如果出现了bug,即使是一个非常小的bug,不及时更新的话有可能存在风险,若要及时更新就得将app重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,这样的问题就不再是问题了。目前较火的热修复方案大致分为两派,分别是:阿里系:spohix、andfix:从底层二进制入手(c语言)。 腾讯系:tinker:从java加载机制入手。

2020-05-24 21:25:50 210

原创 深入探索Android布局优化(下)

前言成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。在上篇文章中,笔者带领大家学习了布局优化涉及到的绘制原理、优化工具、监测手段等等知识。如果对这块内容还不了解的建议先看看《深入探索Android布局优化(上)》。本篇,为深入探索Android布局优化的下篇。这篇文章包含的主要内容如下所示:6、布局优化常规方案 7、布局优化的进阶方案 8、布局优化的常见问题下面,笔者将与大家一起进入进行布局优化的实操环节。六、布局优化常规方案布局

2020-05-22 22:30:15 122

原创 深入探索Android布局优化(上)

前言成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。Android的绘制优化其实可以分为两个部分,即布局(UI)优化和卡顿优化,而布局优化的核心问题就是要解决因布局渲染性能不佳而导致应用卡顿的问题,所以它可以认为是卡顿优化的一个子集。对于Android开发来说,写布局可以说是一个比较简单的工作,但是如果想将写的每一个布局的渲染性能提升到比较好的程度,要付出的努力是要远远超过写布局所付出的。由于布局优化这一主题包含的内容太多,因此,笔者将它分为了上、

2020-05-22 22:18:28 110

原创 使用 Navigation + Dynamic Feature Module 实现模块化

androidx navigation 2.3.0 加入了对 dynamic feature module 的导航支持,因此我们利用这个来分离出多个功能 module 来实现模块化国内基本不用的 dynamic feature moduleAndroid App Bundle 是官方 18 年推出的动态发布方案,类似国内各种插件化方案。不过它需要 Google Play Store 支持,这导致在国内无法使用借着 navigation 组件支持 dynamic feature module

2020-05-21 21:15:38 506 1

原创 基于谷歌最新AAC架构打造的Android MVVM开发框架,使用该框架可以快速开发一个高质量、易维护的Android应用

AACHulk是以Google的ViewModel+DataBinding+LiveData+Lifecycles框架为基础, 结合Okhttp+Retrofit+BaseRecyclerViewAdapterHelper+SmartRefreshLayout+ARouter打造的一款快速开发框架, 开发语言是Kotlin,再结合AACHulkTemplate模版开发进行开发, 避免一些繁琐的操作,提供开发效率功能介绍1.支持多服务器地址、多成功码、各种超时时间、各种拦截器、Arouter等的配.

2020-05-21 20:58:02 267

原创 Android OOM分析

概述OOM(Out of Memory)即内存溢出,是因为应用所需要分配的内存超过系统对应用内存的阈值,而抛出的 java.lang.OutOfMemoryError错误。 OOM的根本原因是开发者对内存使用不当造成的。Android内存分配与回收机制Android系统仅会在新的内存分配之前判断Heap的尾端剩余空间是否足够,如果不够就会触发GC操作,从而腾出更多空闲的内存空间。内存分配Android的Heap空间是一个 GenerationalHeapMemory的模型,最近

2020-05-21 18:59:04 92

原创 AOP埋点从入门到放弃

今天老大跑过来说项目埋点了解一下!丢下了这句话之后,就没有之后了!剩下我一个人在风中凌乱!!!其实这个需求老大在很久之前就说要开发了,后来就搁置了!但是今天看老大的态度,应该排到日程了!所以没办法只有硬着头皮磕了!免得过一阵子加班到很晚,所以趁着时间宽松,先能把踩的坑踩踩!!!分享给大家,也让大家能避免一些不必要的时间浪费。更好的过个周末,陪陪女盆友!!!特别声明:感谢JavaNoober提出的问题!问题是这样的?如果release的话,AspectJ失效怎么办?当时真的给我问.

2020-05-21 17:38:31 56

c++ 面试题库.pdf

一、C 和C++的特点与区别? 参考答案: 答:(1) C语言特点: 1)作为- 种面向过程的结构化语言,易于调试和维护; 2)表现能力和处理能力极强,可以直接访问内存的物理地址; 3)C语言实现了对硬件的编程操作,也适合于应用软件的开发; 4) C语言还具有效率高,可移植性强等特点。 (2) C++语言特点: 1) 在C语言的基础上进行扩充和完善,使C+t兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言; 2)可以使用抽象数据类型进行基于对象的编程; 3)可以使用多继承、多态进行面向对象的编程; 4)可以担负起以模版为特征的泛型化编程。

2020-03-21

空空如也

空空如也

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

TA关注的人 TA的粉丝

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