自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dream It Possible

目标赋予我们生命的意义和目的。有了目标,我们才会把注意力集中在追求喜悦,而不是在避免痛苦上。

  • 博客(1898)
  • 资源 (224)
  • 问答 (1)
  • 收藏
  • 关注

转载 Git使用规范(Android版)

引言本文根据Git分支管理策略,结合Git Flow分支管理实践,制定了这个适合Android开发中的Git版本管理规范。同时结合实际操作演示了使用示例,希望对你有所帮助。1. 各分支简介下面分支中提到的的 version 应该替换为具体的版本,name 应该替换为具体的开发人员姓名,content 应该替换为需要优化的地方。master分支git的默认分⽀,主分支,不...

2019-08-22 14:55:16 3048 7

转载 不是人人都懂的学习要点

http://www.cnblogs.com/watsonyin/archive/2012/10/22/2734741.html学习是一种基础性的能力。然而,“吾生也有涯,而知也无涯。”,如果学习不注意方法,则会“以有涯随无涯,殆矣”。 一.学习也是一种能力看到这个标题,有人会说:“学习,谁不会?”的确,学习就像吃饭睡觉一样,是人的一种本能,人人都有学习的能力。

2012-12-12 15:54:05 7735 11

转载 一个三流学校程序员的奋斗

文章是转载的,我不是一个毅力很强的人,总得一些激励人的文章来激励自己 我也在一个三流的学校,在找有关考研的文章的时候看到这篇文章觉得不错,不敢独享,拿出来共勉…… 看完后我又一次明白,勤能补拙,一个人的成功,往往在于坚持没有挫折,不经历艰难的日子,就没有美好的明天……忘了是谁说的:当你感觉到艰难的时候,正是你在走上坡路的时候

2012-06-08 14:47:26 10191 20

转载 android单元测试怎么读取assets目录下的文件

【代码】android单元测试怎么读取assets目录下的文件。

2024-08-22 17:01:55 79

转载 AGP8.0 ASM 更简单灵活了

在之前《Gradle Transform + ASM 探索》一文中讨论了使用 AGP 提供的 Transform 接口自定义 Gradle 插件,通过 ASM 进行代码插桩。实现一些类似方法耗时统计,批量添加点击事件做埋点的功能。但是随着 AGP8.0 的到来,Transform 接口已经被废弃了,至于废弃的原因官方解释也是很官方了。说白了,就是不好用,传统的 Transform API 增加编译耗时。同时提供了更好用的 API 来规避一些编译时的问题。

2024-08-06 01:16:52 96

转载 Android Gradle8.0 Transform 废弃如何适配,手撸Arouter插件教你使用

最近公司也在适配项目至Android 14 否则市场不让上架,因此 gradle也必须适配升级了,就先来试试水。目前最新的AGP已经到8.3了,适配AGP8.0也要提上日程了,尤其是一些插件项目,因为8.0删除了transform API,所以需要提前做好适配工作。对于之前未了解过gradle自定义插件的同学可以看下我以前的7.0之前的gradle自定义插件的用法 教你如何一步步实现路由插件。Android 自定义Gradle插件,使用Transform。

2024-08-06 01:10:53 330

转载 Android 如何通过AIDL分片传输大量 Parcelable 数据列表

下面就来讲述一个分片传输的处理方案,来解决这类数据过大的问题。

2024-07-10 10:37:00 141

转载 Gradle自定义task打包AAR和APK

上图图示为打包AAR过程中,所经历的一系列task任务,以及执行顺序。如果我们想要修改其中的某一步,只需要定义我们自己的task对build目录下的文件做修改,将task插入到目标动作task中间,即可完成功能。以下列举多个例子来演示一下。

2024-07-09 19:41:46 295

转载 从Gradle生命周期到自定义Task挂接到Build构建流程全解

如果对一个构建流程的任务依赖关系不熟悉的话,可以使用第三方插件来查看,在根项目的build.gradle中添加如下代码:maven {// 应用插件然后执行./gradlew taskTree --no-repeat我们知道,Gradle 的构建流程是通过执行一系列的 Task 任务来完成的,每一个Task完成自己独特的工作之后,就根据Task的依赖关系,执行下一个 Task 任务。preBuild(开始构建之前执行的Task任务)->(合并资源文件的Task任务)->

2024-07-09 19:37:48 149

转载 Gradle8.0中Transform的替代方案

插件中对HuiRouterApi进行插桩,添加插入路由信息的字节码指令,在程序运行时,插桩的字节码指令执行,路由信息被注册到HuiRouterApi内部的路由表中,然后外部就可以通过HuiRouterApi进行跳转操作了。先定义一个注解,用来标记页面的路由信息,在定义一个路由管理类,用来存储路由信息并对外提供跳转功能。5、在taskAction方法中,扫描遍历所有的jar和class文件,收集路由信息,查找到HuiRouterApi类,并将收集到的路由信息通过插桩的方式添加到HuiRouterApi中。

2024-07-09 19:26:35 169

转载 Gradle自定义task打包AAR和APK

上图图示为打包AAR过程中,所经历的一系列task任务,以及执行顺序。如果我们想要修改其中的某一步,只需要定义我们自己的task对build目录下的文件做修改,将task插入到目标动作task中间,即可完成功能。以下列举多个例子来演示一下。

2024-07-03 11:34:08 234

转载 Gradle 进阶学习 之 Task

Gradle的任务依赖系统提供了灵活性和效率,允许开发者定义复杂的构建流程。了解任务依赖的执行顺序和重复依赖的处理方式,可以帮助开发者更好地控制构建过程,提高构建的可预测性和性能。在Gradle中,定义任务是构建自动化流程的基础。你可以通过几种不同的方式定义任务,每种方式都适用于不同的场景。通过Project的task()方法基本用法:使用Project对象的task()方法可以定义一个新任务。你可以传递一个字符串作为任务名称,以及一个闭包来定义任务的行为。闭包作为参数:闭包可以作为task()

2024-07-03 11:25:01 88

转载 从Gradle生命周期到自定义Task挂接到Build构建流程全解

如果对一个构建流程的任务依赖关系不熟悉的话,可以使用第三方插件来查看,在根项目的build.gradle中添加如下代码:maven {// 应用插件然后执行./gradlew taskTree --no-repeat我们知道,Gradle 的构建流程是通过执行一系列的 Task 任务来完成的,每一个Task完成自己独特的工作之后,就根据Task的依赖关系,执行下一个 Task 任务。preBuild(开始构建之前执行的Task任务)->(合并资源文件的Task任务)->

2024-07-03 10:31:05 193

转载 Gradle 动态修改VersionName和VersionCode

本文通过BuildType、Property、Variants三种方式介绍了动态修改VersionCode和VersionName的方法,但是他们的时机却有不同。BuildType:有局限性,仅能修改VersionName,无法修改VersionCode;Property:使用比较方便,在云编译场景比较常见,本地的话可以写在打包脚本里面;Variants:比较彻底,能完全覆盖,而且也可以抽成Plugin,但是如果有云编译的话,会导致云编译的更改失效;

2024-07-02 20:22:39 183

转载 Gradle不可忽视的构建分析

本文依次介绍了ProfileBuild Scan,通过这些构建分析工具,我们可以更好的去分析项目的构建过程,从而提升构建性能。Build Analyzer:开发工具提供,不割裂,但是分析能力相对基础,不过一般也够用了,推荐;Profile:本地分析报告,分析能力相对基础;Build Scan:在线分析报告,分析能力较强,可以进行深入的分析,推荐;其实Gradle还提供了Enterprice,比Build Scan的分析能力还要强,但是属于付费的,不是很符合现在降本增效的主题。

2024-07-02 20:18:01 67

转载 Gradle插件开发指南

编写一个插件Plugin其实挺简单的,只需要实现Plugin接口,并实现唯一apply方法即可。我们就直接写在@Overrideprintln("这是插件:${this.class.name}")这实际上是一个内联类。写完别忘了apply依赖上。第9行的apply方法是调用的PluginAware接口的apply()方法,参数是一个map,用来映射Plugin Id。sync输出:这是插件:YechaoaPlugin...在上一文。

2024-07-02 20:14:14 198

转载 Gradle构建核心之Task指南

Internal自定义一个类,继承自;Action的方法需要添加注解;对外暴露的参数需要使用@Internal注解;使用自定义Task:taskName = "我是传入的Task Name "类型传入自定义Task类。执行结果:我是传入的Task Name -- MyAction2我是传入的Task Name -- MyAction1至此关于Gradle Task的部分就介绍完了。

2024-07-02 20:02:35 130

转载 Gradle常用命令与参数

ok,现在我们就可以针对获取的参数去做一些自定义的操作了,比如修改我们的依赖。} else {} else {这里举例,在的时候依赖了devtools 1.1.1版本,时依赖了devtools 2.2.2版本。除了dependencies里面的依赖之外,Plugin、Task之类的也可以通过动态传参的方式去做自定义操作。

2024-07-02 18:11:27 393

转载 一文搞懂Gradle配置

Gradle第一点其实很好理解,比如Gradle需要java11的运行环境,再比如我们为了加快编译而给Gradle设置更大的运行空间等,这类配置往往相对固定的,因为它是跟随项目走的,即使是多团队协作,大家基本也都是用的同一个环境。

2024-07-02 18:00:17 1556

原创 通过反射和class文件asm字节码分析方法是get或者set方法

asm在解析文件的时候是按照特定顺序进行分析的,首先是visit方法,做类相关的解析,然后是注解,然后是属性,最后才是方法,属性是在所有方法分析前面进行,也就是只有当class文件中的所有属性都遍历完毕之后,才会去遍历方法:测试代码如下。1、反射获取类中的属性和方法,并判定方法是否是set或者get方法。

2024-06-28 09:28:16 234

原创 利用ASM和Javassist动态生成Class 类(set和get)

利用jvm的指令集直接构造class,简单的bean class 还是有应用场景的。在此利用ASM和Javassist各造例子以备忘!抽象类:SimpleJbean。

2024-06-28 00:08:37 303

原创 Asm动态生成类和get and set方法

asm在解析文件的时候是按照特定顺序进行分析的,首先是visit方法,做类相关的解析,然后是注解,然后是属性,最后才是方法,属性是在所有方法分析前面进行,也就是只有当class文件中的所有属性都遍历完毕之后,才会去遍历方法

2024-06-27 20:26:36 313

转载 ASM 在方法进入时候添加语句和方法退出的时候添加代码

在从 ClassReader 到 ClassVisitor 到ClassWriter的过程中, 由 ClassReader来触发各种visitXXX事件,在此过程中如果没有加入任何的ClassVisitor亦或是ClassVisitor只是trace等操作并没有在这个过程中做任何的拦截,那么最终调用的ClassWriter的visitXXX方法,此时将会把原来的class信息原封不动的写入。3 添加 常用Type类用来简化描述符以及internal name的书写。4 修改原始Student类并重命名。

2024-06-27 11:48:29 95

原创 ASM插桩——动态添加字段并生成get set 方法

【代码】ASM插桩 动态添加字段并生成get set 方法。

2024-06-27 11:23:24 238

原创 Gradle 核心之 Task

只有 Task 才可以在Gradle的执行阶段去执行(其实质是执行的 Task 中的一系列 Action),所以 Task 的重要性不言而喻。Task 的定义方式有如下两种:Task 的配置方式也有如下两种:配置了 group 后可以在 Android Studio 的 Gradle 面板看到对应的 Task Group 及其分组下的 Tasks,如下图所示:一般来说都推荐为我们的 task 配置 group,便于我们查找 task。

2024-06-24 19:37:16 1173

转载 一起来学字节码插桩:ASM Tree API

ASM是一个通用的Java字节码操作和分析框架。它可用于修改现有类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以根据这些算法构建定制的复杂转换和代码分析工具。ASM提供了与其他Java字节码框架类似的功能,但更关注性能。因为它的设计和实现尽可能的小和快,它非常适合在动态系统中使用(但当然也可以以静态的方式使用,例如在编译器中)。关于ASM更多介绍,可以参见ASM官网。ASM从组成结构上可以分成两部分,一部分为Core API,另一部分为Tree API。Core API包括。

2024-06-20 22:27:44 93

原创 RecyclerView 、ScrollView滚动条长宽设置

如果我滚动条长度要求只占80%,或指定高度,滑块长度维持不变,那这明显不行。高亮滑块 长度固定, 滚动条总长度占整个高度的80%左右,并带有圆角效果。在styles.xml 文件中添加一个 style标签。此处设置一个 垂直的滚动条,然后在xml中引用该样式。最简单的一个效果出来了,但是这里可以看到,有两个现象。稍微修改下,背景跟滑块 使用两张自定义图片。背景图片仅少了指定高度。

2024-06-20 20:23:00 1347

原创 使用ASM为一个类增加属性工具类

使用ASM可以方便的访问和修改一个类,或者在JVM载入前动态更新一个类也是可以的,如下,使用反编译工具查看生成的CLASS文件,即可看到动态添加的属性了。

2024-06-19 00:25:12 214

原创 使用ASM动态生成类的拦截代理类

【代码】使用ASM动态生成类的拦截代理类。

2024-06-19 00:15:28 258

原创 使用ASM动态创建接口实现类

注意,使用ASM访问属性和方法的时候,会返回一个Visitor对象,如属性为FieldVisitor,方法为MethodVisitor。

2024-06-19 00:09:46 270

原创 ASM之FieldVisitor创建变量

第一个参数是修饰类型,第二个参数是变量名,第三个是变量类型,第四个签名,第五个是变量的值(设置值好像没什么用,所以我在下面代码的初始化中重新初始化了str的值)

2024-06-18 23:49:31 619

原创 Gradle 自动化项目构建-Gradle 核心之 Project

从明面上看,Gradle是一款强大的构建工具,但 Gradle 不仅仅是一款强大的构建工具,它更像是一个编程框架。groovy 核心语法:包括 groovy 基本语法、闭包、数据结构、面向对象等等。Android DSL(build scrpit block):Android 插件在 Gradle 所特有的东西,我们可以在不同的 build scrpit block 中去做不同的事情。Gradle API:包含 Project、Task、Setting 等等。

2024-06-18 20:52:50 1278

转载 Android 编译插桩- APT 实战分析

可以看到经过 AspectJ 的字节码处理,它并不会直接把 Trace 函数直接插入到代码中,而是经过一系列自己的封装。如果想针对所有的函数都做插桩,AspectJ 会带来不少的性能影响。不过大部分情况,我们可能只会插桩某一小部分函数,这样 AspectJ 带来的性能影响就可以忽略不计了。从使用上来看,作为字节码处理元老,AspectJ 的框架也的确有自己的一些优势。成熟稳定。从字节码的格式和各种指令规则来看,字节码处理不是那么简单,如果处理出错,就会导致程序编译或者运行过程出问题。而 Aspect

2024-06-18 20:46:39 49

转载 Android 编译插桩深入了解

JavaPoet 是 square 推出的开源 java代码生成框架,提供 Java Api 生成 .java 源文件。这个框架功能非常有用,我们可以很方便的使用它根据注解、数据库模式、协议格式等来对应生成代码。通过这种自动化生成代码的方式,可以让我们用更加简洁优雅的方式要替代繁琐冗杂的重复工作。JavaPoet 原来还可以这样JavaPoet 编写过程为什么那么流畅,原来 Java 文件也可以用编程的方式生成JavaPoet 可不可以改进我的编码流程,提升效率。

2024-06-18 20:34:59 41

转载 Android 编译插桩入门

随着 Android 开发的发展,越来越多场景需要用到编译插桩了。日常开发中我们肯定也都接触过编译插桩,只是没有去深入挖掘它的实现原理,比如 ButterKnife、无痕埋点等,所以学习编译插桩不仅可以提升我们的竞争力,还可以让我们在开发中开拓视野、更好地解决问题。现在让我们一起学习一些编译插桩的基础来入门。不管是在 Java 后端开发还是 Android 开发,Java 注解都有很广泛的运用。

2024-06-18 20:16:52 81

转载 利用ASM完成第三方SDK安全整改

这篇文章用了Composing build的方式编写了gradle的插件,并使用gradle7.x的AsmClassVisitorFactory来对项目及SDK的代码进行整改,学习了!

2024-06-17 15:57:01 83

转载 ASM字节码插桩之Transform的替代方案

最近在学习asm字节码插桩相关的知识,发现在高版本的gradle上以前的Transform已经废弃,于是研究了一下新版本字节码插桩的实现,本文将简单地介绍下新版本gradle上字节码插桩的实现。

2024-06-17 15:37:05 106

转载 APM框架Matrix源码用到的字节码插桩

traceMethodFromSrc和traceMethodFromJar分别对src和jar插桩,以traceMethodFromSrc为例,会在子线程中执行。: 将方法信息封装成TraceMethod,把需要插桩和不需要插桩(过滤黑名单、空方法、get/set等简单方法)的方法存入两个map。CollectSrcTask和CollectJarTask逻辑相同,一个处理class,一个处理jar,使用了ASM。解析得到类、方法在混淆前和混淆后的映射关系,保存在MappingCollector中。

2024-06-17 14:51:40 73

转载 组件化框架 ARouter 完全解析(三)AGP/Transform/ASM—动态代码注入

本篇内容较多,前半部分都是在介绍铺垫知识,只有完全理解了才能掌握ARouter框架的核心。其中Gradle、AGP是Android开发中必定使用到的技术点,希望通过对ARouter的学习能更加深刻的理解Android编译构建的过程,以及使用Gradle插件能完成哪些事情。Transform是官方Gradle 插件中提供的API,它能获取和处理被打进dex文件之前的class文件。不过Transform在最新的Gradle插件版本中被废弃了,不过这不影响我们我们对它的学习。

2024-06-15 13:14:03 105

转载 组件化框架 ARouter 完全解析(二)APT技术

APT(Annotation Processing Tool),即注解处理器,是javac中提供的编译时扫描和处理注解的工具,它对源代码文件进行检测找出其中的注解,然后使用注解进行额外的处理。注解就像是一个标签,有很多类型,可以贴在某些元素上面进行标记,并且标签上可以写一些信息。APT就是用来处理标签的工具,在编译开始后,可以拿到自己所关心的类型的所有标签,然后根据标签信息和被标记的元素信息,做一些事情。

2024-06-15 13:09:00 65

Android将list数据通过LitePal保存到本地(集合保存到本地)

有时候我们需要将list集合保存到本地,自己写起来太麻烦,就找到了强大的框架LItePal Git地址 https://github.com/LitePalFramework/LitePal

2016-06-17

AndroidDownLoad-多线程断点续传下载

什么是多线程下载? 多线程下载其实就是迅雷,BT一些下载原理,通过多个线程同时和服务器连接,那么你就可以榨取到较高的带宽了,大致做法是将文件切割成N块,每块交给单独一个线程去下载,各自下载完成后将文件块组合成一个文件,程序上要完成做切割和组装的小算法 什么是断点续传? 断点续传,就是当我们下载未结束时候,退出保存下载进度,当下次打开继续下载的时接着上次的进度继续下载,不用每次下载都重新开始,那么有关断点续传的原理和实现手段 http://blog.csdn.net/jdsjlzx/article/details/41014021

2016-06-14

DownloadEngine-Android多线程下载断点续传

商业级别的范例,集支持多线程下载,断点续传,只使用wifi网络下载,显示下载速度,人性化提示及超强的容错机制多功能于一体,绝对的实用,绝对的专业。

2016-06-14

MulThreadDownloader-Android实现网络多线程断点续传下载

Android实现网络多线程断点续传下载

2016-06-14

android-rsa-http

对url的path段进行rsa加密 博客:http://blog.csdn.net/jdsjlzx/article/details/51644798

2016-06-12

android自定义ProgressBar(仿淘宝)的加载效果

android自定义ProgressBar(仿淘宝)的加载效果

2016-06-11

RxJava封装、离线缓存、在线缓存时间控制

http://blog.csdn.net/adzcsx2/article/details/51333890 代码修复版本

2016-05-24

RxJava在Android中内存泄漏解决以及RxJava的封装

RxJava在Android中内存泄漏解决以及RxJava的封装 原文:http://blog.csdn.net/adzcsx2/article/details/51333890 原作者的demo运行有点问题,本人修复重新上传。

2016-05-23

Android RecyclerView实现了下拉刷新和上拉加载

Android RecyclerView实现了下拉刷新和上拉加载,不需要其他控件辅助。

2016-05-23

Android H5做的商城客户端

H5做的商城客户端,效果和android原生客户端没多大区别 详细:http://blog.csdn.net/jdsjlzx/article/details/51283543

2016-04-29

Android下的图片压缩及图片和视频的上传

Android开发中上传图片很常见,一般为了节省流量会进行压缩的操作,Android下的图片压缩及图片和视频的上传

2016-04-19

Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新。在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是通过AsyncTask来实现,另一种方式则是通过ThreadPool来实现。 http://blog.csdn.net/jdsjlzx/article/details/43682351

2016-03-31

Android Bluetooth蓝牙通信文件传输

Android Bluetooth文件的引入和传输,可使用两台设备,一个做客户端一个做服务端,传输文件,显示传送进度。 http://download.csdn.net/download/u010963246/8907157

2016-03-27

Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计)

Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计) 原作者:http://my.oschina.net/sikilao/blog/488331

2016-03-26

Android蓝牙聊天程序优化版

Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计) 原创作者链接:http://my.oschina.net/sikilao/blog/488331

2016-03-26

universal-image-loader-1.9.5.jar

universal-image-loader-1.9.5.jar

2016-02-27

Android 二维码扫描怎样实现第二次(重复)扫描

Android二维码扫描怎样实现第二次(重复)扫描

2016-02-16

Android 通过Socket 和服务器通讯

Android 通过Socket 和服务器通讯,是一种比较常用的通讯方式,时间比较紧,说下大致的思路,希望能帮到使用socket 进行通信的人 (1)开启一个线程发送消息 SocketOutputThread 消息是放在队列里的,当有消息后,进入队列,线程唤醒,发送消息,并反馈发送是否成功的回调 (2)开启一个线程接受服务器消息 SocketInputThread 为了防止一直收数据,浪费电池的电,采用NIO的方式读socket的数据,这个是本文的关键 (3)开启一个线程,做心跳,防止socket连接终断 , SocketHeartThread (4)构建 SocketThreadManager对以上三个thread进行管理 (5)构建 TCPClient 发送socket消息 在NIO的方式实现TCP,特别是在接收服务器的数据,不用写个线程定时去读了。

2016-02-16

android RangeSeekBarView 选定范围值的控件

实现了一个选定范围值的控件,刻度尺为等分的100等分。模仿二手车app中筛选选定区间的控件。 原创链接:http://download.csdn.net/detail/huweigoodboy/8508243

2016-02-01

Android仿天天动态上拉播放界面控件

仿天天动态上拉出现播放界面(修改) 效果:1,在Content未展开的状态(隐藏): 1>点击Handler控件,弹出Content。 2>拖动Handler,Content会从底部逐渐出来。 2,在Content展开的状态: 拖动Content,content位置随着手指的滑动而产生位置变化。 原创:http://download.csdn.net/detail/huweigoodboy/8372255

2016-01-31

RecyclerView的四级缓存源码分析

RecyclerView 四级缓存

2023-03-21

Flutter编程指南-多线程

Flutter是Google开发的新一代跨平台方案,Flutter可以实现写一份代码同时运行在iOS和Android设备上,并且提供很好的性能体验。 在Google刚推出Flutter时,其发展很缓慢,终于在18年发布第一个Bate版之后迎来了爆发性增长,发布第一个Release版时增长速度更快。可以从Github上Star数据看出来这个增长的过程。在19年最新的Flutter 1.2版本中,已经开放Web支持的Beta版。 目前已经有不少大型项目接入Flutter,阿里的咸鱼、头条的抖音、腾讯的NOW直播,都将Flutter当做应用程序的开发语言。除此之外,还有一些其他中小型公司也在做。Flutter越来越变成一个新的开发趋势。

2022-02-21

java数据结构与算法之美(物超所值)

数据结构与算法之美教程分为 4 个由浅入深的模块:入门、初级、高级、实战。 高级篇将从概念和应用的角度,深入剖析一些稍复杂的数据结构与算法,推演海量数据下的算法问题解决过程;帮你更加深入理解算法精髓,开拓视野,训练逻辑;真正带你升级算法思维,修炼深厚的编程内功。 实战篇将通过实战案例串讲前面讲到的数据结构和算法;并拿一些开源项目和框架,剖析它们背后的数据结构和算法;并带你用学过的内容实现一个短网址系统;深化对概念和应用的理解,灵活使用数据结构和算法。

2022-02-09

flutter_macos_2.8.1-stable.zip

Flutter 的 Stable channel 是相对稳定的发布版本,最新版本是2.8.1。 官网下载速度慢还容易失败,有需要的下载即可。

2022-01-05

mac_apktool.zip

MacOS下用的APK逆向工程工具 本工具分两个版本:一个是图形化版本Android-Crack-Tool,易操作;一个是命令行版本; 使用参考:https://www.jianshu.com/p/56ea01d7ccac

2021-03-25

Postman-osx-5.3.2 for Mac

Postman是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。 这里提供的是Mac下的Postman安装包。

2017-10-31

Android 三种方式实现自定义圆形页面加载中效果的进度条

Android 三种方式实现自定义圆形页面加载中效果的进度条

2016-12-19

CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar

Android Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar http://blog.csdn.net/jdsjlzx/article/details/50421349

2016-08-19

android自定义进度条渐变色View的实例代码

这个自定义的view,完全脱离了android自带的ProgressView,并且没使用一张图片,这样就能更好的降低程序代码上的耦合性! http://blog.csdn.net/jdsjlzx/article/details/49586339

2016-07-26

Android多行文本折叠展开效果

- 单行文本水平触摸滑动效果 通过EditText实现TextView单行长文本水平滑动效果 - 多行文本折叠展开 自定义布局View实现多行文本折叠和展开 详见: http://blog.csdn.net/jdsjlzx/article/details/45821909

2016-07-25

Android封装popwindow类(下拉菜单弹出和收缩效果)

popwindow 实现下拉菜单的弹出和收缩效果 http://blog.csdn.net/jdsjlzx/article/details/52000107资源

2016-07-22

Android自定义spinner下拉框

Android自定义spinner下拉框实现的实现 http://blog.csdn.net/jdsjlzx/article/details/41316417 请支持原创:http://blog.csdn.net/geniuseoe2012/article/details/8723702

2016-07-16

Android DigitalClock实现倒计时

应用案例: 大量商品的限时抢购等。 类似于这样的倒计时,不知道大家有没有遇到过,大家又能想到哪些方案????? 1、每一秒到服务器上面去取一次数据? 2、每一秒,通过一个Handler去循环遍历,对每一条去刷新一次时间控件? 3、还是大家有其它的想法。 上述两种方案都不可取: 1、网络连接有时间差,况且数据访问量大的情况,服务器没法承受。 2、 循环遍历可行,但是要在数据量少的情况下,如果数据量过大,那么会卡屏,对系统内存的占用也较高。 本源码的方案是对Android 系统中 DigitalClock 进行一次封装。 通过继承以下方法并改变内部的实现。

2016-07-12

Android 带箭头有光晕效果的ProgressBar

Android 带箭头有光晕效果的ProgressBar(Android Studio版本) 原文:http://blog.csdn.net/ekeuy/article/details/39228285

2016-07-04

android webview与 js交互通信

webview与js的交互。 其实这个demo完全可以在客户端实现相同功能,这里只是学习交互如何实现的。并且用html动态加载会比较灵活,可以在服务端随时更新样式。没有公网服务器,我把网页放在assets中,不过不影响的。

2016-06-20

Android项目webview中做与js交互

Android项目webview中做与js交互,涉及到js中调用Android本地的方法,于是查了资料整理了一下android和js互相调用的过程。如下demo,demo的主要实现过程如下:通过加载本地的html文件(里面有js脚本),实现android本地方法和js中的交互。 http://blog.csdn.net/jdsjlzx/article/details/7254875

2016-06-20

Android socket通信长连接(心跳检测)

Android的socket长连接(心跳检测),有服务端和客户端 。开发环境eclipse,不可多得的客户端与服务器端代码

2016-06-17

Android客户端提供Socket服务与pc通过USB通信

Android手机和电脑通USB线连接,手机里面的app作为Socket的服务器端,PC作为Socket的客户端,两者进行通信。

2016-06-17

Android 使用Socket,ServerSocket编程网络通信

Android完全支持JDK本身的TCP,UDP网络通信API,也可以使用ServerSocket,Socket来建立基于TCP/IP协议的网络通信,也可以使用DatagramSocket,Datagrampacket来建 立基于UDP协议的网络通信

2016-06-17

Android socket即时通信Demo

基于tcp和udp的即时通信源码,以及实现原理说明和截图。 当然socket不仅仅可以用来做聊天,如usb连接和wifi通信等都可以用socket来实现,此源码功能实现非常详细,不可多得!

2016-06-17

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

TA关注的人

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