自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android茶话会

以Android开发技术为主,包括面试和产品相关知识,以及生活中的一些思考

  • 博客(191)
  • 资源 (25)
  • 收藏
  • 关注

原创 全栈加持,让面试官小抄再次进化!

核心是毕竟目前大环境也一般,保不齐哪天就能用上了。主要包含以下内容

2023-12-31 19:23:39 327

原创 用小程序给 Android开发续一秒

面试官的小抄,Android面试&进阶一网打尽,让一部分人先学起来。

2023-11-14 11:12:12 108

原创 Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了,而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力

2023-10-09 20:15:41 252

原创 技术人如何写简历?(文末有福利)

笔者在滴滴、阿里和字节时候也面试了不少人,看过形形色色的简历没有上百也有大几十份了。校招季也快到了,这里总结自身经验聊一下

2023-05-23 20:39:07 373

原创 2023年的年度总结:不设边界、积极探索

24年技术上 会继续在全栈之路上狂奔、客户端的话应用层目前都在往大前端靠拢,鸿蒙出来搅局,会加速这个趋势,对鸿蒙技术栈还是需要继续跟进,争做“π”型打工人增加自身战斗力。产品上以公众号小程序为阵地 继续探索知识变现。工作上还是得把业务支持好团队带好,毕竟这是基本盘。最后 尽人事听天命吧,与君共勉!🔥我是程序员龙湫(全栈),就职过网易、滴滴,阿里&字节 面试官,目前在字节跳动写Android。

2024-01-02 12:43:59 797

原创 kotlin的一些细节与技巧

欢迎关注kotlin在使用过程中有些有着一些小细节需要注意,搞清楚这些能够更加高效的使用Kotlin,下面来介绍一下。

2023-07-01 00:21:36 598

原创 ChatGPT的前世今生,还不了解下?

如今的人工智能的发展已经远超你的想象了

2023-06-24 23:50:07 250

原创 Shell编程从入门到实践——实践篇

结合之前搞一些CI/CD 使用到shell,shell的开箱即用确实比较方便,至少无需在宿主上安装运行环境,本篇文章主要解释shell脚本实践过程中一些经验总结。

2023-06-23 21:36:31 260

原创 Shell编程从入门到实践——入门篇

Shell是一种命令行解释器,它是在Unix和Linux操作系统中广泛使用的一种工具,也是我们日常开发工作中的好帮手,相较于Python,Shell语法简单非常好上手而且开箱即用无需纠结安装Python2还是Python3。下面将从 入门到实践详细介绍下Shell编程

2023-06-22 20:22:41 286

原创 Kotlin中的lambda从入门到进阶

lambda表达式是Kotlin函数式编程的一个重要概念,是函数式编程的基础,在kotlin中函数是一等公民,而lambda则是其灵魂。lambda本质上是可以传递给函数的一小段代码, 是一个函数类型的对象,本文主要从浅入深介绍下kotlin中的lambda以及跟java lambda的区别。

2023-06-21 00:49:29 1488 1

原创 算法技巧-双指针

双指针技巧在算法题中算是常用技巧了,让我们省去for循环,降低复杂度,通常双指针技巧可以分为2大类快慢指针左右指针前者主要解决链表中的问题,比如链表是否有环,删除倒数第N个节点等,后者主要解决数组、字符串中的问题,比如二分查找、翻转数组等,下面将详细介绍下。

2023-06-06 15:08:46 446

原创 Modern Android Development in 2023

这是一篇基于我个人观点和经验的文章,考虑到Android开发者社区的不同意见,我可能没有提到一些非常有趣的工具、模式和架构,但这并不意味着它们不能成为开发Android应用程序的其他有趣选择。

2023-05-31 11:27:48 566

原创 你真的了解Systrace吗?

在日常开发中有时候遇到棘手的性能问题就需要使用这个工具,Systrace 是中新增的性能数据采样和分析工具。它可帮助开发者收集 Android 关键子系统(如 SurfaceFlinger/SystemServer/Kernel/Input/Display 等Framework 部分关键模块、服务,View」系统等 的运行信息,从而帮助开发者更直观的「分析系统瓶颈,改进性能」。

2023-05-29 01:52:46 1678

原创 29道面试基础算法题,试试看会不会

本文主要整理了一些面试常见的算法题,涵盖 数组、字符串、哈希表、链表、二叉树。

2023-05-25 09:00:00 3137 1

原创 Android Camera了解一下

首发于公众号Android Camera了解一下Camera 演进简介最近在项目中遇到 Camera相关的场景,之前对这块不是很了解,趁机补了一下盲区。Android Camera 相关也是生态碎片化较为严重的一块,Android FrameWorkt提供Camera API来实现拍照与屏幕录制的能力,目前Android有三类APICamera (为了便于区分 下面简称 Camera1)此类是用于控制设备相机的旧版API,在Android5.0以下使用,现已DeprecatedCam..

2021-09-17 01:16:44 8178 2

原创 Flutter UI渲染分析

1、前言本篇文章主要介绍Flutter 渲染框架及其渲染过程Flutter是谷歌的移动UI框架,在此之前也有类似ReactNative、Weex等跨端方案,Flutter在一定程度上借鉴了ReactNative的思想,采用三棵树 其中element tree diff管理,来触发renderTree的刷新,并且不同于android这种命令式视图开发,采用了声明式,下面将一一介绍。2、编...

2020-02-12 15:27:47 1082

原创 Flutter 中的生命周期分析

本篇主要介绍Flutter中的相关生命周期 分为 widget生命周期、app生命周期Widget生命周期flutter中widget主要分为 StatelessWidget 和 StatefulWidget 两种 二者生命周期不太一样StatelessWidget(无状态)如果一个控件自身状态不会去改变,创建了就直接显示,不会有色值、大小或者其他属性的变化,这种widget一般都...

2020-02-12 15:25:28 426

原创 idleHandler

idleHandler什么是idleHandlerAndroid是基于Looper消息循环的系统,我们通过Handler向Looper包含的MessageQueue投递Message,在MessageQueue中我们可以看到这样的一个接口 /** * Callback interface for discovering when a thread is going t...

2020-02-12 15:22:46 520

原创 Gradle插件从入门到进阶

Gradle插件从入门到进阶1、简介Gradle本身的领域对象主要有Project和Task。Project为Task提供了执行上下文,所有的Plugin要么向Project中添加用于配置的Property,要么向Project中添加不同的Task。一个Task表示一个逻辑上较为独立的执行过程,比如编译Java源代码,拷贝文件,打包Jar文件,甚至可以是执行一个系统命令或者调用Ant。另外,...

2019-05-05 23:35:46 2170

原创 Android中的AOP

Android中的AOP什么是AOPAOP(Aspect Oriented Program的首字母缩写)是一种面向切面编程的思想。这种编程思想是相对于OOP(ObjectOriented Programming即面向对象编程)来说的。先来说一下大家熟悉的面向对象编程:面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让...

2019-05-02 11:54:23 298

原创 深入理解动态代理

千山鸟飞绝,万径人踪灭。孤舟蓑笠翁,独钓寒江雪——唐·柳宗元《江雪》首发于我的公众号深入理解动态代理一、概述最近在阅读retrofit源码时,有个关键的所在就是动态代理,细细回想了一下动态代理,发现之前有些细节还没有理解到位,本篇博文将重新深入理解一下动态代理。二、关于代理中华名族是一个含蓄的名族,讲究微妙和间接的交流方式。对象之间的间接通信也是同样是面向对象设计中一条重要...

2019-02-22 22:45:54 712

原创 设计模式精简图册

设计模式精简图册首发于我的公众号设计模式图册设计模式分类创建型模式:主要用于创建对象,包括工厂方法(Factory Method)抽象工厂(Abstract Factory)单例(Singleton)生成器(Builder)原型(Prototype)结构型模式:用于处理类或者对象的组合,包括适配器(Adapter)装饰者(Decorator)代理(Proxy...

2019-02-19 23:58:38 1099

原创 设计模式入门

0x00 概述本文主要介绍设计模式的六大原则,这是学习设计模式的总纲。设计模式其实是一套被反复使用、总结出来的代码设计经验的总结,使用设计模式是为了重用代码,让代码更加容易的被他人理解,保证代码的可靠性。在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - El

2017-11-09 10:54:28 632

原创 设计模式学习记录

0x00 概述学习设计模式是一个漫长的过程,也是一个程序员登堂入室的必经之路。这篇博文就是记录学习设计模式的过程,会持续更新,每个模式都有对应的学习代码,学习在https://github.com/xsfelvis/DesignPattern.git0x01 大纲 创建型 结构型 行为型 对象 Factory Method Adapter_Class 类 Abstrac

2017-11-09 10:53:38 776

原创 你真的了解过度绘制吗?

本文主要谈谈Android过度绘制相关的知识点,并结合云课堂企业版首页优化过度绘制的实践总结一些与之相关的问题,与君共享,互相进步~本文将按照如下结构展开1、 表面问题产生2、 问题背后的探索 ---- 什么是过度绘制 ---- Android渲染机制3、 优化过度常用工具和套路4、 小结0x00 表面问题的产生在我的小米2s测试机,打开云课堂企业版,顺手打开了过度绘制发现了惊人的

2017-11-04 15:58:14 7352

原创 butterknife及其背后的代码生成技术

本篇博文主要介绍butterknife使用及其背后的技术点,行文结构如下0x00 butterknife项目地址: https://github.com/JakeWharton/butterknife github原文是这样介绍的 Field and method binding for Android views which uses annotation processing to gene

2017-11-02 20:27:18 2707

原创 Service全面总结

service本篇博文主要介绍Service相关知识,具体目录如下0x00 什么是ServiceService是一个应用程序组件,可以在后台长时间运行的操作,不提供用户界面;一个应用程序可以启动一个服务,它将继续在后台运行,即使用户切换到另外一个应用一个组件可以绑定到一个服务与它交互,甚至执行进程间通信(IPC),如处理网络传输、音乐播放、执行文件I/O,与content provider进行

2017-10-31 16:47:03 2143

原创 2个关于Adapter库的源码分析(AdapterDelegate、BaseRecyclerViewHelper)

0x00 概述 核心思想:都是围绕如何解决viewType、视图、数据与视图的绑定来进行一系列的封装,不同的库有着自己不同的手段而已Adapter能在数据变化时候,内部实现逻辑不会改变,仅在外部添加新功能即可,那么要求Adapter对数据层是解耦的,不能显示持有外部数据,核心要点要把握好 RecyclerView的3个核心APIgetItemViewType : 根据position返回的一

2017-10-30 20:08:15 3296 1

原创 密码学技术初探

0X00 概述本篇文章是对密码学基础知识的一些总结,旨在对密码学有一个概要认识。主要分为以下两个大的方面 密码对称密码分组密码模式公钥密码混合密码 认证单向散列函数消息认证码数字签名证书0X01 密码对称密码(共享密钥密码)核心: 用相同的密钥进行加密和解密主要分为 DES、三重DES、AES DES(淘汰)1、简介:DES(Data Encryption Standard

2017-10-20 19:37:12 4154

原创 注解库之ButterKnife

butterknife解决的问题项目地址: https://github.com/JakeWharton/butterknife github原文是这样介绍的 Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.翻译过来就

2017-07-29 17:19:51 2134 6

原创 注解库之Dagger2

Dagger2Step1 使用0x00 Dagger2介绍 Dagger is a fully static, compile-time dependency injection framework for both Java and Android. It is an adaptation of an earlier versioncreated by Square and now maint

2017-07-29 16:20:16 1085 1

原创 Lottie的使用及原理浅析

lottie项目地址: https://github.com/xsfelvis/lottie-androidLottie支持Jellybean (API 16)及以上的系统什么是lottie?Airbnb最近开源了一个名叫Lottie的动画库,它能够同时支持iOS,Android与ReactNative的开发,使用流程如下图所示如图所示,通过安装AE上的bodymovin的插件,能够将AE中的动画工

2017-02-14 23:36:15 15791 4

原创 JNI两种注册过程实战

JNI系列JNI两种注册过程实战深入理解JNI概述Android OS加载JNI Lib的方法有两种 - JNI_OnLoad(动态注册) - 如果JNI Lib实现中没有定义JNI_OnLoad,则dvm调用dvm ResolveNativeMethod进行动态解析(静态注册) 因此,当 java 通过 System.loadLibrary 加载完 JNI 动态库后,紧接着会调用 JNI_O

2017-01-23 15:22:06 6724 9

原创 AS gradle 编译引起的bug

问题描述引起原因由于某些原因导致垃圾回收器,每次花费了大量的时间(by default 98% of all CPU time of the process),仅仅恢复了一点点内存(by default 2% of the heap),这个异常有效的提醒你,你的程序此时正停止了其他事情而仅仅忙于垃圾处理,为了防止你的应用榨干整个CPU而做不了其他事情,此时JVM虚拟机就会抛出这个异常 可能出现的

2017-01-12 19:26:19 1723

原创 ListView嵌套ViewPager+Fragment引起的Bug

发现问题之前发现过一次,情景一样,当时是将ListView替换为LinearLayout然后动态添加view解决,这次又发现这个问题,感觉得从根本上找出原因所在,毕竟listview嵌套多层viewpager+fragment场景还是存在很多的(如资产详情带图表切换),报的crash分析问题定位问题根据报错日志No view found for id 0x7f0f03f8定位源码位置Fragment

2017-01-12 19:23:27 4229

原创 Andfix学习记录

概述篇AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 7.0,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件,并且是立即生效的项目地址https://github.com/alibaba/AndFix官方

2017-01-11 10:41:40 2608

原创 注解基础

0x00 概述本文主要是介绍注解的基础知识,为后面的APT和JavaPoet打下基础0x01 什么是注解注解(Annotation)是Java5的一个新特性,是插入在代码中的一种注释或者说是一种元数据(meta data),这些注释信息可以在编译期使用预编译工具进行获取处理,也可以在运行期使用Java反射机制来获取,这取决于你的注解类型。0x02 注解的语法及其定义在Android中注解经常存在我们

2017-01-10 23:14:57 2420

原创 编译期注解之JavaPoet

0x00 概述上一篇限于篇幅只介绍了APT,这篇来继续介绍javapoet,是square公司的开源库。正如其名,java诗人,通过注解来生成java源文件,通常要使用javapoet这个库与Filer配合使用。主要和注解配合用来干掉那些重复的模板代码(如butterknife 和databinding所做的事情),当然你也可以使用这个技术让你的代码更加的炫酷。0x01 简单使用使用之前要先引入这

2017-01-10 23:14:07 3881

原创 编译期注解之APT

0x00 概述前一篇介绍了注解的基本知识以及常见用法,由于运行期(RunTime)利用反射去获取信息还是比较损耗性能的,本篇将介绍一种使用注解更加优雅的方式,编译期(Compile time)注解,以及处理编译期注解的手段APT和Javapoet,限于篇幅,本篇着重介绍APT 首先你的注解需要声明为CLASS @Retention(RetentionPolicy.CLASS) 编译期解析注解基

2017-01-10 23:12:12 3394

原创 支持手机和控制台log的小工具-ZeusLog

0x00 解决问题新人刚到项目组,往往搞不清每个页面对应的Activity名称,导致完成需要一些时间浪费在找页面上网络请求查看比较麻烦,需要代理,转为格式化json系统Log比较挫项目地址 https://github.com/xsfelvis/ZeusLog0x01 ZeusLog主要分为两大块,移动端Log和控制台Log,先上图 移动端主要支持显示当前Actvity的名称显示所

2017-01-08 23:09:34 3277

定义未来金融与经济新格局.pdf

作者为火币网技术副总裁可以说是个奇才,把概念讲的非常清楚

2018-03-05

定义未来金融与经济新格局.pdf

作者为火币网技术副总裁可以说是个奇才,把概念讲的非常清楚

2018-03-05

java反射的demo代码

java 反射demo

2016-04-05

recyleviewdemo

recyleview的基本入门demo 集合了cardview 包括点击事件处理

2015-11-30

viewPager搭框架

viewPager搭框架,有viewpager+fragment和viewpager+pageAdapter 博客地址 http://blog.csdn.net/xsf50717/article/details/49764521

2015-11-10

反编译的工具

反编译apk工具,详细使用请见http://blog.csdn.net/xsf50717/article/details/49718777

2015-11-08

Volley学习Demo

Volley学习demo,包含volley的网络请求,图片下载

2015-11-08

TabLayout 方便快捷实现选项卡功能

TabLayout 方便快捷实现选项卡功能的框架,拿去直接用

2015-10-25

AsyncTask练习demo

AsyncTask练习demo,对着写写,有利理解

2015-10-19

json解析,异步下载(listview仅滑动时加载)Demo

异步加载的练习demo 主要涉及知识点: 1.解析json格式数据,主要包括图片,文本 2.使用线程和AsynTask俩种异步方式从网络下载图片 3.handler的使用 4.使用Lru缓存算法 5.改进加载:仅在listview滑动停止后才加载可见项,滑动中不加载

2015-10-10

德州扑克 华为2015编程大赛

华为2015编程大赛作品,成功挺住3轮PK

2015-08-01

MySQL技术内幕(第4版) (带标签)1分

MySQL技术内幕(第4版),带标签的方便大家阅读学习的得力之作,只要一个下载分哦

2014-12-04

百度地图的详细demo.

百度地图的详细API函数和demo,可以帮助你完成百度地图的开发工作

2014-10-20

百度地图 demo

百度地图的详细API函数和demo,可以帮助你完成百度地图的开发工作

2014-10-20

百度地图Demo

百度地图的详细API函数和demo,可以帮助你完成百度地图的开发工作

2014-10-20

摇一摇 功能的源代码

帮助你了解安卓中摇一摇功能的实现,测试可用

2014-10-18

仿微信 摇一摇

仿微信界面 帮助你了解安卓中摇一摇功能的实现,测试可用

2014-10-18

摇一摇 源码

帮助你了解安卓中摇一摇功能的实现,测试可用

2014-10-18

仿微信 demo

集成界面仿真,安卓开发中个关于二维码 扫一扫摇一摇功能实现的源码

2014-10-18

安卓 扫一扫 二维码

安卓开发中个关于二维码 扫一扫功能实现的源码

2014-10-18

androi 扫一扫的源码

安卓开发中 二维码扫一扫的技术代码 亲测可用

2014-10-18

数制转换,栈

数制转换,栈的思想,将一个非负十进制数N,转换为基为B进制数的问题,一般采取“除B取余”来解决

2014-10-10

迷宫问题的算法

迷宫问题的算法代码,栈+深度优先+回溯,绝对可以运行

2014-10-10

舞伴配对问题 c语言

完整描述了舞伴配对问题,并给出了详细的C代码

2014-10-10

基于matlab的直接序列扩频通信

基于matlab的直接序列扩频通信系统仿真,内附代码值得拥有

2014-07-18

空空如也

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

TA关注的人

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