自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

eclipse_xu

路漫漫其修远兮 吾将上下而求索

  • 博客(436)
  • 资源 (22)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android群英传:神兵利器——出版祭

Android群英传:神兵利器《Android群英传:神兵利器》——看上去好像是第一本书的续集,但实际上,这本书的内容,在我写《Android群英传》的时候就已经写了不少了,碍于出版社的篇幅限制与主题的统一,很多内容并没有放到《Android群英传》中。由于第一本书上市后,受到各位开发者的抬爱,销售情况还算理想,所以出版社一直希望我能出一本续集,因此,我便萌生了想要把这本书补全的想法。

2016-08-18 10:10:56 22681 74

原创 对不起!我来晚了!——《Android群英传》出版祭

对不起!我来晚了!——《Android群英传》出版祭历时将近一年,我的第一本书终于就要出版了,虽然经历种种曲折,历经磨难,最终还是赶在八月份的尾巴上,修成正果。 首先,要向大家道歉,本来预计是在6月份上市的书,一拖再拖,直到现在才得以出版,让不少朋友一等再等,这里,向这些朋友的耐心,狠狠的点个赞。写书之前其实,当官杨主编第一次找我写书的时候,其实我是,是想拒绝的,我跟女朋友讲,我拒绝,因为,

2015-09-08 22:02:59 37282 163

原创 向产品宣战——开发者眼中的Android UI Design

向产品宣战——开发者眼中的Android UI Design 准备了半个月,思考产品设计、交互设计,见证了公司的产品、UE和开发的撕逼,将自己的思考、感悟,整理成下文,谨代表广大程序猿,向设计狮、产品X开战。希望广大程序猿能够坚持贯彻Google的Material Design,切实认真负责的执行Android的设计思想,将MD设计带到产品中去,不做中国特色的App。

2015-06-09 14:18:21 32371 169

原创 解放双手——Android自动化测试

人们懒的走路,才创造了汽车;人们懒的爬楼,才创造了电梯;人们懒的扫地,才创造了自动扫地机器人。人类的进步,离不开这些喜欢偷懒的人,现在,程序猿将偷懒上升到了一个新的高度——利用程序来进行自动化软件测试,将测试工程师从繁琐的测试用例中解脱出来,从此可以一边喝着咖啡,一边看着程序自动测试,不必看着测试用例重复无数次的测试步骤,也不必担心操作失误而导致不必要的错误,更不用担心压力测试而导致的身心俱疲。想了解程序猿是如

2015-05-11 16:42:06 65930 72

原创 Eclipse,到了说再见的时候了——Android Studio最全解析

去年的Google大会上,Google带给我们一个小玩具——Android Studio,说它是玩具,是因为它确实比较菜,界面过时,操作不流畅,效率也不高,但是现在,虽然版本还是0.6,甚至都没到1.0,但是我们可以发现亲儿子到底是亲儿子,现在的Android Studio已经今非昔比,用了一段时间,简直爱不释手,我觉得,It's time to say goodbye eclipse!本文将带领

2014-06-14 17:24:26 42446 99

原创 我也来开发2048之终极奥义

本次教程跟之前隔了不少时间哈,有点忘记了的建议先看看前面的熟悉下,今天我准备把这个2048给结束了,拖了这么久。按照惯例,我们已经把准备工作都做好了,今天这一部分信息量比较大,也是整个游戏的核心所在,所以我准备分功能来讲,最后大家结合源码来看就不会感觉太吃力了。1、初始化游戏 初始化的时候,我们要干嘛呢,首先要看配置,配置了几行,然后先画好面板,然后要给在面板上随机生成2个数字Item,这涉及到2

2014-04-27 13:39:39 30751 367

原创 Android拼图游戏开发全纪录1

今天我们继续来讲解Android拼图游戏全纪录的第二篇,今天要完成的任务比较简单:界面布局和资源文件1资源文件:我们在开发一个项目的时候,首先要定下这个App的基调,是小清新呢还是重口味,所以我们需要定义一些颜色、style等首先是颜色等: #000000 #FFFFFF #F56A47 #FFFFFF #727

2014-01-31 11:39:51 26240 61

原创 纯血鸿蒙 璀璨星河

点击上方蓝字关注我,知识会给你力量华为最近可谓是加班加点,前段时间华为给出了鸿蒙系统的计划表,让大家都摩拳擦掌,想看看华为到底有几把刷子,这次的621HDC大会,就是华为给全世界的第一个交待。最近在网上经常流传着这样一张图:大体意思就是:根据Counterpoint Research报告显示,今年一季度,鸿蒙在中国市场份额为17%,而苹果的iOS为16%。这意味着,鸿蒙在中国市场首次超越iOS,成...

2024-06-21 18:01:59 871

原创 Flutter局部刷新三剑客

点击上方蓝字关注我,知识会给你力量局部刷新作为提高Flutter页面性能的重要手段,是每一个Flutter老手都必须掌握的技巧。当然,我们不用非得使用Riverpod、Provider、Bloc这些状态管理工具来实现局部刷新,Flutter框架本身也给我们提供了很多方便快捷的刷新方案,今天要提的就是Notifier三剑客,用它来处理局部刷新,代码优雅又方便,可谓是居家必备之良器。ChangeNo...

2024-06-19 08:30:20 889

原创 从Flutter范儿的单例来看Dart的构造函数

点击上方蓝字关注我,知识会给你力量单例模式单例模式应该是设计模式中使用的最广泛的一种设计模式了,在Kotlin中,甚至为它单独创建了一个语法糖——object类,来快速实现单例模式,而在Dart中,并没有像Kotlin这样的语法糖,所以,参考单例的一般实现,我们可以很容易的实现下面这样一个单例。classSingleton{staticSingleton?_instance;...

2024-05-07 08:30:15 843 1

原创 从源码看Flutter Android端的启动流程

点击上方蓝字关注我,知识会给你力量Flutter容器Flutter在Android中的渲染载体就是Flutter容器,通常是以Activity和Fragment的形式承载,虽然也有FlutterView,但是需要单独处理的关联方法太多,所以不太建议使用,这篇文章将分析Flutter在Android中的加载和启动流程,了解Flutter是如何在Android中加载并渲染的。小小Android,eas...

2024-04-07 08:30:45 821

原创 Flutter鸿蒙终端一体化—鹊桥相会

点击上方蓝字关注我,知识会给你力量在鸿蒙中开发Flutter项目,一个最大的问题,就是「不太会写鸿蒙代码」,这对于一个Flutter开发者来说,虽然不是一件很麻烦的事,但由于现在鸿蒙的版本和文档还略有一些混乱,所以要写好还是有一些麻烦的,所以,秉着能用工具解决的问题就不要自己写的原则,我们参考Native的Flutter Channel的实现,也就是pigeon的方式,不熟悉的同学可以参考我之前的...

2024-03-18 08:30:07 760

原创 Flutter鸿蒙终端一体化-天下一统

点击上方蓝字关注我,知识会给你力量在前面的文章中,我们了解了如何使用FlutterPage来创建Flutter容器。Flutter鸿蒙终端一体化-混沌初开Flutter鸿蒙终端一体化-珠联璧合但更多的时候,我们需要的是一种类似FlutterFragment的方式来进行引用,可喜的是,鸿蒙实现这种方式也并不复杂,因为不论是FlutterPage,还是FlutterFragment,它内部实际上是通过...

2024-03-12 08:30:44 1663

原创 Flutter鸿蒙终端一体化-珠联璧合

点击上方蓝字关注我,知识会给你力量在上一篇文章中,我们初步了解了在鸿蒙中使用Flutter的可能性和可用性,还没看过的可以参考下面的链接。Flutter鸿蒙终端一体化-混沌初开在文章的最后,我们分析了两种混编模式,和Android、iOS类似,分别是源码依赖和产物依赖,在我们的项目中,由于很早之前就开始介入Flutter开发,同时抽象了一套Flutter的轻量级渲染模式,所以,这里我们会使用产物依...

2024-01-31 08:30:27 3340 1

原创 Flutter鸿蒙终端一体化-混沌初开

点击上方蓝字关注我,知识会给你力量环境配置欲练此功,必先仔细阅读此项目的README文件十遍以上。flutter_flutter项目,这是我们整个工程的核心,但是很多人都倒在了第一步,其原因,就是——需要使用Dev分支!!!https://gitee.com/openharmony-sig/flutter_flutter/tree/dev/当前项目已经支持Linux、Mac、Windows环境下使...

2024-01-24 08:30:33 2179

原创 真•文本环绕问题的探究和分享

点击上方蓝字关注我,知识会给你力量前言上周领导安排了一个任务:希望我们的动态展示不是固定把图片展示在文本的上面或者下面,希望图片放在文本内容里,也不需要很复杂的效果,就排版好看就行。Ok,这不就是富文本吗,我一下子就联想到了RichText,一想到RichText支持WidgetSpan,我就知道问题不大,但是经过测试发现这里面是个大坑......话不多说,先展示一下本地Demo的实际效果图:--...

2023-10-20 08:30:17 323 1

原创 为 TheRouter 开发一个 IDEA 插件

点击上方蓝字关注我,知识会给你力量为 TheRouter 开发一个 IDEA 插件❝本插件代码已全部开源,走过路过请给个star:https://github.com/kymjs/TheRouterIdeaPlugin❞这篇文章是假定你已经有了 idea 插件开发的入门知识,来教你如何实现一个实际项目的功能。如果你还不知道如何开发一个插件,建议先从这个链接查看官网相关文档 https://plu...

2023-10-12 08:30:34 300

原创 Flutter混编方案在起点客户端的实践之路

点击上方蓝字关注我,知识会给你力量起点读书客户端一直紧跟新技术的潮流,从很早开始,就在进行Flutter的尝试,在筹备了许久之后(移除了包大小的KPI指标),我们终于在最新的业务开发中,使用了Flutter。Flutter虽然会带来一些包体积的增加,但带来的收益却是:愉悦的开发体验,不用再忍受漫长的编译,强大的热更新可以快速进行UI开发跨端的统一UI设计,双端不用做太多的适配就可以运行开发效率提升...

2023-09-26 08:30:34 438

原创 Android编译的小知识

背景Android是如何进行编译的? 项目中的源代码是如何一步步被执行为可以安装到手机上的apk的? 文章会一一给大家介绍,尽量以代码为例,好让大家快速理解。文末有福利~1.认识Gradle1.1 Gradle简介官方文档:https://docs.gradle.org/7.3.3/userguide/what_is_gradle.html官方解释:Gradle是一个开源的自动化构建工具。 现...

2023-09-19 08:30:28 1175

原创 hwui介绍与分析

hwui全称**HardwareAcceleratedRenderingEngineforUI,**hwui是一个基于GPU加速的2D图形引擎。HWUI的目标是提供高效、稳定、高质量的2D图形渲染能力,为Android系统的UI体验提供技术支持。相关源码位于目录android/platform/framework/base/libs/hwui文末有福利~hwui的大部分代码以C++实现,Andro...

2023-09-07 08:30:59 937 1

原创 Flutter性能揭秘之RepaintBoundary

点击上方蓝字关注我,知识会给你力量Flutter会在屏幕上绘制Widget。如果一个Widget的内容需要更新,那就只能重绘了。尽管如此,Flutter同样会重新绘制一些Widget,而这些Widget的内容仍有部分未被改变。这可能会影响应用程序的执行性能,有时影响会非常巨大。如果您正在寻找一种方法,来防止不必要的部分重绘,您可以考虑利用RepaintBoundary。在这篇博客理,我们将探讨Fl...

2023-08-18 19:59:43 260

原创 当我用ChatGPT摸了一上午鱼,结果......

点击上方蓝字关注我,知识会给你力量经常有人问我,ChatGPT出来这么久了,你怎么不写点教程(割点韭菜)呢?其实,从它一出来,我就关注了,也在平时的工作中进行了使用,正好最近在处理一个埋点的问题,就拿ChatGPT来进行下演示吧,看我怎么用ChatGPT来摸鱼,解决我们平时遇到的问题。问题是这样的,相信很多朋友也遇到过,那就是RecyclerView的Item曝光埋点问题。最开始对埋点数据要求不高...

2023-07-05 08:30:34 277

原创 从Kotlin中return@forEach了个寂寞

点击上方蓝字关注我,知识会给你力量今天在Review(copy)同事代码的时候,发现了一个问题,想到很久之前,自己也遇到过这个问题,那么就来看下吧。首先,我们抽取最小复现代码。(1..7).forEach{if(it==3){return@forEach}Log.d("xys","Num:$it")}很简单的代码,我相信很多人都这样写...

2023-06-12 08:30:19 841

原创 FlutterComponent最佳实践之Widget Lifecycle

点击上方蓝字关注我,知识会给你力量了解Flutter的生命周期,是我们写出优雅的App的基石,通过生命周期的适配,可以让代码更加稳健,鲁棒性更好。Widget生命周期下面这张图,就展示了一个Widget的整体生命周期示例。当你把BuildContext分配给Widget时,一个内部标志位—mounted会被设置为true。这会让Framework知道这个Widget目前已经挂载到Widget Tr...

2023-04-11 08:30:16 479

原创 FlutterComponent最佳实践之国际化

点击上方蓝字关注我,知识会给你力量在Android中,我们可以通过不同的strings.xml文件来实现国际化的不同语言需求,那么在Flutter中,官方同样也提供了国际化的适配方案,官方文档如下所示。https://docs.flutter.dev/development/accessibility-and-localization/internationalization本地化与国际化本地化(...

2023-04-04 08:30:03 479

原创 从源码看Flutter BuildContext的秘密

点击上方蓝字关注我,知识会给你力量我们每次在写Flutter代码的时候,都会看到这个参数——BuildContext,在Android开发中,也经常看见一个类似的东西——Context,它们是不是一样的呢?其实说一样也对,它们都是上下文的关键承载者,但是却也不一样,因为它们本质上是两个不同的概念。在Flutter中,BuildContext的源码如下。从注释中我们就可以看出,[BuildConte...

2023-03-28 08:30:46 573

原创 FlutterComponent最佳实践之Widget尺寸

点击上方蓝字关注我,知识会给你力量在Flutter和在Native中,对一个Widget的尺寸测量,一直都是一个非常麻烦的事情,大部分时间,我们都是按照约束和具体的尺寸来进行布局,但有些时候,我们不得不拿到动态的Widget尺寸来实现自己的一些布局策略。通常来说,我们会有三方面的需求。测量自己的尺寸测量Parent的尺寸测量Child的尺寸测量自己的尺寸要获取你自身的Widget尺寸,其实只需要通...

2023-03-21 08:44:21 691

原创 FlutterComponent最佳实践之Timer的妙用

点击上方蓝字关注我,知识会给你力量Timer在Flutter中,通常是用来构建延时的异步任务的,在讲解它的妙之前,我们先来看看Timer的基操。Timer基操Timer广义上可以理解为一个倒计时器,它从创建到结束会经历下面三个过程:Creates a timerExecutes a callbackThe timer finishes创建一个Timer非常简单。finaltimer=Time...

2023-03-14 08:30:47 621

原创 Flutter中的异步执行策略

点击上方蓝字关注我,知识会给你力量在Flutter中,如何执行一段延迟执行的异步代码?我们可以找到下面这些方法。scheduleMicrotaskFuture.microtaskFutureFuture.delayedTimer.runWidgetsBinding.addPostFrameCallbackSchedulerBinding.addPostFrameCallback你可能会说,这是相当...

2023-03-09 08:30:26 752

原创 Flutter布局指南之约束和尺寸

点击上方蓝字关注我,知识会给你力量Flutter布局总纲——向下传递约束,向上传递尺寸。Box约束约束是Flutter布局的核心,在Flutter中,约束的表现形式是通过Constraints类来实现的,所有的非滚动布局模型,都通过BoxConstraints来进行约束,它的代码如下。从上面的代码可以看出,约束本质上就是「宽」「高」上的「最大」「最小」范围。BoxConstraints具有传递性,...

2023-03-06 08:30:50 1121

原创 FlutterComponent最佳实践之动画的显和隐

点击上方蓝字关注我,知识会给你力量Flutter中包含大量的动画组件和自定义动画方式,所以,在合适的场景下选择合适的动画实现方式就成了决定代码质量好坏的一个重要因素。动画选择决策树Flutter中的动画从广义上来讲可以分为两类,一类是基于绘制的动画(Drawing-based animations),另一类是基于代码的动画(Code-based animations)。下面这个决策树,是Flutt...

2023-02-28 08:30:57 640

原创 闲言碎语-第八期

点击上方蓝字关注我,知识会给你力量时间一晃就过去了,22年的总结还没来得及写,转眼已经2023年了。22年对于很多人来说,应该都是比较魔幻的一年,特别是在上海的朋友,一小半的时间都在居家办公,疫情不仅影响了工作,更影响了经济,很多人收入降级、失业,或是离开上海,完全放开后,大部分人都经历了一次痛苦的感染过程,一时间朋友圈全是新冠诊断现场直播,好在经历过这一次感染后,大部分人都回归了正常的生活轨道,...

2023-02-06 08:30:45 550

原创 Flutter混编工程之异常处理

点击上方蓝字关注我,知识会给你力量Flutter App层和Framework层的异常,通常是不会引起Crash的,但是Engine层的异常会造成Crash。而Flutter Engine部分的异常,主要是libfutter.so发生的异常,这部分的异常,在Dart层无法捕获,一般会交给类似Bugly这样的平台来收集。我们能主动监控的,主要是Dart层的异常,这些异常虽然不会让App crash,...

2023-02-06 08:30:45 1288

原创 后新冠时代

自从国家卫健委宣布防控放开之后,所有人都为之一震,原来的【躺平党】慌了,就这么分开了,都不缓一缓吗?原来的【封控党】也慌了,就这么分开了,我们的脸往哪放啊?也许刚放开的时候,大家都还没意识到会出现现在这幅境况,躺平党认为这就是普通感冒,大家都得一次就好了,封控党认为国家抛弃我们了。但实际上,不管是哪种观点,后面的路,都需要我们自己走了。这种猝不及防让所有人都很疑惑,前几天还没有48h核酸不能进饭店...

2022-12-25 15:26:36 1554

原创 Kotlin泛型的型变之路

点击上方蓝字关注我,知识会给你力量之前就写过一篇泛型的文章,但是总觉得写得不够系统,所以最近对泛型又作了些研究,算是对这篇文章的补充了。kotlin修炼指南7之泛型泛型,是为了让「类」、「接口」、「方法」具有更加通用的使用范围而诞生的,举个例子,假如我们不使用泛型,那么一个List中可以装得下任何对象,这么做的问题就在于,在使用时,需要对类型进行检查,不然就会转换异常。所以,我们需要将这种检查前置...

2022-12-19 08:30:16 1343

原创 APP动态路由的设计与实践

点击上方蓝字关注我,知识会给你力量本文作者——张涛「货拉拉」这篇文章是我在 2022【GIAC 全球互联网架构大会】分享时所讲内容的文字版本,修改删减了演讲时的冗余言语,现开放给大家阅读,希望能给买不到票参加分享的 开源实验室 读者带来帮助。大家好,今天跟大家分享的是一个开源路由TheRouter的设计。代码地址:https://github.com/HuolalaTech/hll-wp-ther...

2022-11-25 08:30:22 1482

原创 kotlin修炼指南9-Sequence的秘密

点击上方蓝字关注我,知识会给你力量人们经常忽略Iterable和Sequence之间的区别。这是可以理解的,因为即使它们的定义也几乎是相同的。interfaceIterable<outT>{operatorfuniterator():Iterator<T>}interfaceSequence<outT>{operato...

2022-11-14 08:30:29 1438

原创 kotlin修炼指南8—集合中的高阶函数

点击上方蓝字关注我,知识会给你力量Kotlin对集合操作类新增了很多快捷的高阶函数操作,各种操作符让很多开发者傻傻分不清,特别是看一些Kotlin的源码或者是协程的源码,各种眼花缭乱的操作符,让代码完全读不下去,所以,本文将对Kotlin中的集合高阶函数,进行下讲解,降低大家阅读源码的难度,下面看几个用的比较多的高阶函数使用。首先是sumOf,作为一个很方便的求和函数,它可以快速对集合内的某些参数...

2022-11-07 08:30:26 2032

原创 忙里偷闲IdleHandler

点击上方蓝字关注我,知识会给你力量在Android中,Handler是一个使用的非常频繁的东西,输入事件机制和系统状态,都通过Handler来进行流转,而在Handler中,有一个很少被人提起但是却很有用的东西,那就是IdleHandler,它的源码如下。/***Callbackinterfacefordiscoveringwhenathreadisgoingtobloc...

2022-10-31 08:30:01 868

原创 TheRouter 的跨模块依赖注入实现原理

点击上方蓝字关注我,知识会给你力量本文作者——张涛(货拉拉)TheRouter用于跨模块通信设计的ServiceProvider,核心设计思想是参考了SOA(面向服务架构)的设计方式。具体到 Android 侧就是 AIDL 类似的实现。模块化能力支持项:支持跨模块依赖注入支持自定义注入项的创建规则,依赖注入可自定义参数支持自定义服务拦截,单模块mock调试支持注入对象缓存,多次注入 只会new一...

2022-10-26 08:35:31 589

ListViewAcyncLoader

ListViewAcyncLoader

2015-04-03

IntentServiceTest

IntentServiceTest、

2015-03-31

ASM_2_50 android screen monitor

android screen monitor

2014-11-25

ASM android screen monitor

ASM android screen monitor

2014-11-25

ASM_2_50手机屏幕监视工具

ASM_2_50 Android Screen Monitor Android Screen Monitor

2014-11-25

android动画图标

android动画图标I am not a gif maker,I am a developer

2014-10-31

Android动画机制全解析source

Android动画机制全解析source

2014-08-06

4.2到4.4后栈结构变化

4.2到4.4后栈结构变化

2014-05-23

Python Standard Library

Python Standard LibraryPython Standard Library

2014-05-20

50.Android.Hacks

50.Android.Hacks

2014-05-12

通过正则表达式生成数据

通过正则表达式生成满足条件的随机数据

2014-03-20

path菜单控件封装

path菜单控件封装

2014-01-03

android sdk r21 part2

android sdk r21 part2

2013-03-15

android sdk r21 part1

android sdk r21

2013-03-15

Access实例

Access实例

2013-03-14

android UI

android ui 设计

2013-03-14

Access VBA编程指南

Access VBA编程指南 详细讲解了access开发的完整过程

2012-12-20

VBA代码格式化工具

在VBA代码中点击右键选择Indent就可以选择格式化相应的代码

2012-11-22

电信光猫与TP-Link无线路由器连接设置.doc

电信光猫与TP-Link无线路由器连接设置.doc

2012-11-11

Android_开发指南中文版.pdf

Android_开发指南中文版.pdf

2012-11-11

FlexPaper源码

FlexPaper源码和修改后的源码,包括去logo等功能

2012-11-06

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

TA关注的人

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