- 博客(27)
- 收藏
- 关注
原创 Flutter学习 滚动组件(2):ListView进阶使用
上一篇文章介绍了,Flutter学习 滚动组件(1):ListView基本使用介绍了ListView基本使用,这篇文章介绍一下进阶使用的方法。我们通过定义一个复杂的ListView布局和增加分割线,以及增加下拉刷新、上拉加载、修改ListView滚动方向,滚动到指定位置来介绍了一下ListView进阶使用,希望大家可以通过这些例子,更好的掌握ListView.Flutter可滚动组件(3):ListView进阶使用。
2025-04-19 17:22:52
803
原创 Flutter学习 滚动组件(1):ListView基本使用
我们可以使用ListView.builder的itemBuilder属性来自定义列表项的样式和布局,下面一个例子是动态设置item布局背景runApp(MyApp(items: List<String>.generate(10000, (i) => '列表 $i'),),@overrideconst title = 'ListView的使用';
2025-04-15 17:12:24
496
原创 Android进阶之NDK开发,保姆级教程
下载NDK工具包app/build.gradle 配置对应下载的NDK版本号,并配置ABI支持架构创建编写CMake文件,并制定对应文件地址编写JNI方法,并用命令生成JNI头文件引入生成的头文件,并实现对应C/C++源码make项目,编译so文件项目新建jni目录,并导入上个步骤生成的so文件运行程序测试验证需要完整源码的可以评论,私发给你。Android JNI开发从0到1,java调C,C调Java,保姆级教程详解。
2024-07-27 17:24:23
1274
1
原创 kotlin Flow 学习指南 (三)最终篇
前面两篇文章,介绍了Flow是什么,如何使用,以及相关的操作符进阶,接下来这篇文章,主要介绍Flow在实际项目中使用。我们从Flow的生命周期,介绍了flow正确使用姿势,避免资源的浪费,到普通的冷流转换成热流,再到StateFlow代替LiveData,以及它的粘性问题,然后通过SharedFlow解决粘性问题,再到常见应用场景,最后到Flow使用注意事项,基本涵盖了Flow大部分特性、应用场景,这也是Flow学习的最终篇。创作不易,喜欢的麻烦。参考文章。
2024-07-09 20:56:02
1324
原创 kotlin Flow 学习指南(二)
至此,我们基本flow常见的函数操作符介绍完毕了,我们可以结合一些业务场景按需使用,这里主要是通过一些例子,简单介绍了一下flow函数的操作符,我们实际项目使用最多的还是StateFlow、SharedFlow这些。下面文章,我将从实际项目例子介绍一下StateFlow、SharedFlow相关用法。参考文章Kotlin Flow响应式编程,操作符函数进阶。
2024-06-29 17:29:52
1204
2
原创 kotlin Flow 学习指南(一)
我们可以从Android官网,Flow定义:在协程中,与仅返回单个值的挂起函数相反,数据流可按顺序发出多个值。例如,我们可以通过数据流从数据库中实时接收更新。数据流使用挂起函数通过异步方式生成和使用值,也就是说,数据流可安全地发出网络请求以生成下一个值,而不会阻塞主线程。至此,我们从一个简单的例子,了解了Flow基本使用方法,Flow用法远不止于此,下篇我们介绍一下,Flow的常见操作符。
2024-06-23 21:54:40
669
原创 鸿蒙开发,简单入门一下。
我们通过ArkUi基础组件,实现了一些小的demo效果,通过这些demo,我们对ArkUi声明式UI框架,有个初步的认识,我们再学习一下鸿蒙的网络请求、数据存储这些,差不多算入门了。最后,我想说的是,一项新的技术,没有那么难,花点时间学习一下,还是很好入门,至于想长期从事鸿蒙开发,这点是远远不够的,当然,其实我也是面向面试学习,如果进入公司从事鸿蒙开发的,还是得继续深入学习.
2024-06-17 20:32:40
1028
原创 鸿蒙版的wanAndroid,你不了解一下
鸿蒙Next版本即将抛弃Android,让我们简单了解一下鸿蒙开发。言归正传,上面大概介绍鸿蒙开发的一些基础事项,现在来介绍一下,本文的重点,一个开源的鸿蒙版WanAndroid App。支持。首页、广场、体系、公众号、我的五大模块页面成功失败状态切换+上拉刷新、下拉加载列表模块+原生router页面跳转+带cookie封转网络请求API+基础webview页面浏览模块。
2024-06-13 20:49:19
491
原创 Android 自定义插件
Android自定义插件,主要分为三种,第一种是自定义脚本插件,第二种是自定义buildSrc插件,第三种是自定义独立插件,接下来对这三种插件逐一介绍,如何使用。自定义脚本插件,简单来说就是在文件中,写一份脚本文件代码。apply plugin : PluginDemo // 引入插件 // 定义插件 class PluginDemo implements Plugin < Project > {println '第一种方式实现插件' } }第一种方式实现插件。
2022-10-22 16:33:39
1998
1
原创 Android OpenGL开发学习(二)手把手教你实现抖音分屏相机
目录前言一、常规操作二、使用步骤1.创建SurfaceTexture2.自定义Renderer3.坐标系4.OpenGL和Camera相结合5.实际运行效果6.分屏效果7.项目地址总结前言上面文章介绍了一下OpenGL基本使用,由于接触OpenGL时间不长,对它理解的不是很深,讲得不是很清楚,接下来用这篇文章,通过一个实际的开发例子,重新介绍一下OpenGL。提示:话不多说,正文来了。一、常规操作上面文章已经介绍了OpenGL如何使用,下面直接上代码了。 glSurfaceView = f.
2021-12-12 17:19:15
3538
原创 Android OpenGL开发学习(一)绘制简单图形
目录前言:OpenGL是什么:如何使用:1.设置OpenGL版本2.创建GLSurfaceView实例3.实现Renderer接口4.绘制三角形定义图形绘制图形5.投影和相机视图6.增加动画7.项目地址:总结:前言:前段时间,闲来无事,打算研究一下自定义camera开发,发现用到了OpenGL,所以打算自学一下,顺便写几篇文章记录一下。OpenGL是什么:学习OpenGl先了解一下,它是一个什么东西?OpenGL 是一种跨平台的图形 API,用于为 3D 图形处理硬件指定标准的软件接口。这
2021-10-10 17:57:45
5618
原创 最真实的2021Android面经(无广告版)
目录前言:面试题:百度一面:百度二面:普渡科技一面:普渡科技二面:OPPO一面:平安一面:快手一面:腾讯一面:涂鸦一面:涂鸦二面:货拉拉一面:商汤一面:商汤二面:顺丰一面:常见面试题:总结:前言:前段时间,被公司坑了一把,不得已出来找工作啊,经过两个多礼拜复习,匆匆上阵,两个礼拜把深圳(阿里、字节、虾皮简历没过)大厂基本面完了,当然挂面吃的饱饱的。正好今天有空,我把我遇到印象比较深的面试题分享出来,给大家参考。面试题:百度一面:1、 onTouch->onTouchEvent->o
2021-09-04 17:00:44
1348
6
原创 深入浅出-Java反射
文章目录前言一、反射是什么?二、反射如何使用1.常用API1)获取Class对象2)构造类对象3)获取类对象成员变量和方法4)调用方法5)动态代理6)获取泛型对象类型2.应用场景总结前言反射是java开发中比较常见和重要的一个知识,我们平时在开发中,可能会遇到,但相对其他知识没有那么频繁,曾几何时,我刚开始接触反射,查阅各种博客,大多数博客,无一例外,都是在介绍反射是获取运行中任意…,如何使用…,但是总觉得有点深奥,没有真正的让我们去理解和灵活运用,所以我想用这篇文章更加直白的去介绍这个知识,让大家.
2021-05-23 15:16:17
400
原创 Android开发利器-AOP
前言一、AOP是什么?二、常用AOP技术APTAspectJASMJavassitJava动态代理cglib二、使用步骤1.引入库2.实际例子3.更多参考4.项目地址总结前言AOP(Aspect Oriented Programming)面向切面编程,我们知道有OOP面向对象编程,提倡功能模块化,为啥要学习AOP呢,本文将从是什么、为什么、怎么用来介绍AOP,看完本文你一定会对AOP有一个完整的认识。一、AOP是什么?面向切面编程,顾名思义就是以切入的方式实现某些功能,我们在实现某些功能
2021-02-27 18:44:31
590
原创 可能是最全的kotlin协程+Jetpack入门教程
可能是最全的kotlin协程+Jetpack入门教程前言一、协程是什么?二、Jetpack是什么?1.引入库2.读入数据总结二级目录三级目录文章目录前言一、协程是什么?二、Jetpack是什么?1.引入库2.读入数据总结二级目录三级目录前言最近一直在学习kotlin,为了能够尽快入门,所以我准备写一个简单的app练手,加上之前一直在研究Jetpack这套组件库,基于以上原因我打算用kotlin+jetpack搭建我的app框架,至于为啥用kotlin协程,之前在网上看了一篇博客Kotlin 协程 看
2020-12-28 16:58:10
4226
3
原创 RxJava现学现用下(应用场景)
前言之前两篇文章介绍了RxJava常用的操作符,本文将从实际开发着手,来聊聊RxJava的应用场景。再聊这个之前,先回顾一下RxJava的操作符:如上图所示,RxJava基本分为这6类操作符,下面针对这6类操作符,具体介绍一下应用场景。学习内容:提示:这里可以添加要学的内容例如:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 周一至周五晚上 7 点—晚上9点2、
2020-11-08 16:48:21
754
原创 Glide你需要知道的事(源码解析)
前言:项目中经常用到Glide、面试也有被问到,是时候系统的来深入了解一下Glide了。Picasso、Fresco、Glide:做Android开发的,对上述图片加载框架,应该比较熟悉了,我简单的介绍一下,对比分析一下。Picasso是Square公司开源的项目,功能强大、调用简单:Picasso .with(context) .load(Url) .into(targetImageView);Glide是谷歌员工开源的一个项目,调用方式如下:Gli
2020-10-19 20:49:18
1232
6
原创 手把手教你实现一个Butterknife
相信从事Android开发的同学们,平时肯定没少写过findViewById的代码,自从Jake Wharton大神出了一个Butterknife框架后,很多人就开始使用这个,利用Android Studio的插件,一键生成,帮我们节省了不少时间和重复代码。说实话,这个框架刚出来的时候,由于对这个不了解,总觉得会影响性能,一直没有使用,当慢慢熟悉他的原理时候,用着真香。其实在这个Butterknife之前,xUtils3也有自动绑定view的框架,不过他是使用的java 反射会影响性能,后面慢慢的很多开..
2020-09-26 16:12:05
402
原创 RxJava 现学现用中(操作符)
接上篇,还剩过滤性操作符和条件布尔操作符未讲。 过滤性操作符 过滤性操作符:按照一定的条件过滤事件,主要包括以下几类: 条件过滤操作符 1.Filter() 过滤指定条件的事件 Observable.just(1, 2, 3, 4, 5) .filter(new Predicate<Integer>() { @Override ...
2020-09-12 17:14:22
191
原创 RxJava 现学现用上(操作符)
RxJava是一个在Android中非常流行的框架,作为Android开发者对它都不陌生,本文将从是什么到它的应用场景来了解一下这个框架。 RxJava是什么 RxJava是基于事件流的异步操作库。 RxJava的作用 RxJava的作用类似于Android中的Handler、AsyncTask,帮助我们优雅的实现异步任务。 RxJava的原理 RxJava主要有三个要素,被观察者(Observable)、观察者(Observer)、事件(Event),它是一种扩展的...
2020-09-05 16:10:10
241
原创 一篇文章来了解一下Android Binder机制
在移动端越来越饱和的状态下,我们会发现出去找工作的时候,动不动就是你看过xx源码,你了解xx原理,其实这个时候,大家应该都想骂娘的吧。面试造火箭,工作拧螺丝,这句话大家都懂。与其说面试要求越来越高,不如换个角度想想,这也不乏是一种筛选人才的方式,大家都一样,招谁都一样,为啥要你呢?工作越来越久,我发现其实那些原理东西,对我们平时的开发还是很有帮助的,比如有时出现问题需要定位原因,你必须熟悉里面的原理,才能找到真正错误的原因,直至解决它。话不多说,接下来我们介绍一下Binder。...
2020-08-15 17:08:54
242
原创 Android消息机制 Handler Looper MessageQueue那点事(源码解析)
作为Android开发,Handler机制是我们绕不过的知识点,我们常常在开发或面试过程中,经常使用到或被问到。既然我们绕不过,我们不妨掌握这个知识点。// 创建handler对象Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { s..
2020-07-18 16:42:25
202
原创 Android 自定义View 一个可以自由拖拽、边缘拉伸的view
之前在开发一个项目的时候,有做过一个这样的效果,从项目中抽出来,写了一个demo,给大家看下,抛砖引玉啊。 先看看实现的效果:实现思路1.如图上述效果,主要实现了两个效果:一是移动view的中心位置,可以实现view的自由拖拽移动,二是在右边缘、下边缘滑动的时候,view的宽、高跟着拉伸。2.view的移动,可以使用setMargins(left ,top,right,bottom)方法,通过改变left、top的值来实现,view拉伸,可以通过不断改变LayoutParams w...
2020-07-05 14:52:23
1943
原创 一个6年Android 开发者经验总结
做Android开发不知不觉已经六年多了,从一个一窍不通的小白到现在能够独当一面的老鸟,其中经历不少的坑,以前总是不断百度、询求他人的帮助来解决问题,到现在越来越觉得,其实解决问题的方式有很多种,最重要的是通过自己的不断实践,不断总结,快速定位问题、解决问题,形成自己解决问题的一种方式、方法,从而让自己得到提升。 不知道大家怎么看待一个棘手的问题啊,我以前碰到这种问题很难受、很着急,总想通过百度、问别人来解决,后面发现其实这种想法根本没有用,自己的问题,别人没有义务帮你解决,百度到的东西,跟你想要...
2020-06-07 19:14:14
437
原创 android sdk 开发经验总结
最近在做aidl sdk开发的时候遇到一个问题,由于是服务连接必然存在服务连接断开重连的问题,根据aidl自带的binderDied方法进行重连,但是在开发过程中发现,光这样做不行,在客户端调用接口的时候增加判断方法,断开了,通知客户端重连,必要的时候保证常用的方法能执行,可用别的方式实现,因为如果系统anr了,binder进程就阻塞了,跨进程调用就无法执行,服务端也会anr.联调的过程我...
2019-09-29 09:32:55
258
原创 Android Socket初探
最近项目要用到socket通信,所以就研究了一下,首先socket分为两个端,一个是客户端socket,另一个是服务端serverSocket,首先说说他们的连接方式,都说是三次握手,这里不讲这个,看看他们连接的代码:客户端Socket socket = new Socket("192.168.1.1", 10010);服务端ServerSocket mServerSocket = new Ser...
2018-04-22 17:15:43
177
原创 Android TV焦点处理
之前一直在手机端做开发,换了份工作,要接触车机端,车机和手机端最大的区别就是焦点态的处理,参考了很多开源项目对于焦点态的处理,但都不太符合我的需求。1.解决的需求我们的app界面划分几个区域,由6个按键控制,其中300、301主要是在区域里面移动焦点,上下左右是在区域与区域之间切换焦点,之前我们的解决方案是把每个焦点手动加到指定区域,可以实现我们大部分需求,但是过于繁琐,代码量也比较多,设计一套自...
2018-03-18 16:00:43
751
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人