自定义博客皮肤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开发的点点滴滴

  • 博客(210)
  • 资源 (41)
  • 问答 (1)
  • 收藏
  • 关注

原创 JavaScript实现继承的几种方式

核心在于改造原型链,利用原型链的方法,实现了方法的继承。原型链+构造函数组合的方式,发挥二者之长。

2023-04-17 16:36:42 760 1

原创 webpack 配置介绍

development(开发环境) 和 production(生产环境) 这两个环境下的构建目标存在着巨大差异,通过 webpack-merge 可以将基础的配置抽象到 webpack.base.js 中,开发环境和线上环境分别使用 webpack.dev.js 和 webpack.prod.js,然后 merge(webpack.base.js)即可。该功能在打包模式为production时,默认开启,在打包时候回检测是否有标识,有副作用,没有副作用在打包时候不会参与打包。当超过150KB 建议使用。

2023-03-28 11:09:41 1012

原创 iframe和跨域

如上服务端配置 header 中 Web端的域名,*表示全部通过,也可以指定固定域名。这样,Web 端访问时候就可正常打开指定的域名了,否则会出现跨域问题。服务器中转跨域,script 标签没有跨域限制,可以使用script 标签加载不同的 src,解决跨域问题。在生产环境 nginx 代理,项目 config.js配置。5、postMessage+iframe:不常用,漏洞大,xss 攻击,兼容性差。同源是指:协议+域名+端口完全一致。2、获取嵌套的iframe的上次层window。

2023-03-24 10:34:47 1750

原创 Android项目接入React Native方案

本篇文章主要介绍在现有的Android项目中接入React Native的接入过程,分析接入过程中的一些问题和解决方案,接入RN的平台为Android,开发环境为Mac,开发工具为Android Studio。

2023-01-18 15:09:31 4705 1

原创 dom 小知识总结

6、window.getComputedStyle(element,null).props:获取css的style对象,后面可以跟具体值属性。是有第二个参数的,第二个参数是修改this 的指向的,如果传递的不是对象,会强制转为包装类对象,如果不传,指向 window。5、nodeType:节点编号,可以使用该编号过滤node节点生成有效的元素节点。包含所以的节点,包含:注释节点,换行的文本节点等无效的内容。1、nodeName:获取节点的名称,只读。2、nodeValue:获取节点的值,可写。

2023-01-17 14:50:08 497

原创 in、hasOwnProperty、instanceof 使用

对象是否是某个子类。

2023-01-02 13:24:43 109

原创 js函数之call和apply

可以看出改变了this 的指向,和apply的区别是后面是一个数组,其他没啥区别,均可以改变this 指向Car.apply(newCar, ['兰博基尼', 'red'])。结果一致,调用test()默认会调用call,二者效果一致,call省略掉了。call还有一个很重要的功能是改变this的指向。Car.call(newCar, '兰博基尼', 'red')//参数1:对象,参数2,3,4……"brand": "兰博基尼",

2023-01-01 14:06:44 452

原创 作用域、闭包、立即执行函数

一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行上下文,当函数执行完毕,执行上下文被销毁。如上,函数test是全局作用域,函数内部的 a,b 则是局部作用域,当在外界调用时候内部时候,a 或者 b 执行结束直接被释放掉。在函数内部定义的函数、变量等,被叫做局部作用域,局部作用域的数据的生命周期在该函数执行完以后就被释放。如上,函数test,变量 a 就是全局作用域,在全局生效,不会被销毁,除非程序结束。

2022-12-28 17:49:01 140

原创 React 自定义组件实现手写签名

【代码】React 自定义组件实现手写签名。

2022-12-25 14:19:30 350

原创 微信小程序获取组件大小

【代码】微信小程序获取组件大小

2022-12-25 13:59:54 553

原创 H5中常见的 Android 和 iOS 兼容性问题

最好在代码中不要主动focus(),可能会在真机上引起页面布局被iOS 软键盘顶上去,而Android、Google、Safair 中则正常。

2022-10-24 13:16:41 2160

原创 React实现优雅的弹窗

实现弹窗的原理关键在于,如何将弹窗组件挂载到任意的dom上,参考weui.js,提供了思路,可以通过append将元素添加到指定的父节点上,来实现弹窗的显示,隐藏的时候在移除该元素即可,如下示例:在react同样可以使用该思路来实现,弹窗的显示和隐藏。

2022-09-13 11:35:57 4911

原创 useEffect、useMemo、useCallback使用场景分析

getName()会在每次组件渲染的时候执行dom,尽管name没有变化,我们需要让name变化的时候才渲染dom,否则保持原有的数据,这时候就用到了useMemo。

2022-08-20 21:18:54 3013 1

原创 常用hooks总结

1、useEffact参考:https://www.cnblogs.com/guanghe/p/14178482.html2、useState作用:更新变量,触发render。const [loading, setLoading] = useState(true);当loading变化时候会触发render。3、useMemo作用:解决hooks会触发多次无用的渲染问题。如果useMemo(fn, arr)第二个参数匹配,并且其值发生改变,才会多次执行执行,否则只执行一次,如

2022-07-25 08:50:18 1948 2

原创 CSS像素单位

整个屏幕的一个像素点。当默认值改了,基准值也会跟着改,尺寸是基于父元素的设置的值改变的:会导致内层的字体越来越大,实用性不强。五、calc动态计算大小,例如下面动态填满一屏。height: calc(100vh - 6rem);表示banner的高度为上面整屏高度减去nav的高度。注意:运算符前后需要有空格,calc(100vh-6rem)这样写错误。...

2022-07-09 10:05:58 969

原创 CSS的margin失效、塌陷和兼容问题

在标准文档流中,竖直方向的margin不叠加,以较大的为准,水平方向不影响,可以叠加。注意是标准文档流,不是标准文档流不存在塌陷现象。 要想使p的margin生效,需要给父布局的div添加border,否则margin无效。margin表示兄弟和兄弟之间的距离,最好不要使用margin表示父子之间的距离,要善于使用padding。四、margin的IE6兼容问题1、margin双倍问题 浮动方向和margin方向相反,左浮动+右margin2、IE6的三像素

2022-07-06 21:20:37 1690

原创 CSS实现图片实现正方形的效果

设置css属性高度等于宽度、或者宽度等于高度。 postcss-aspect-ratio-polyfill - npmCSS属性之aspect-ratio - 掘金

2022-07-03 15:27:23 962

原创 CSS定位

不脱离标准流 相对自己原来的位置移动,形影分离,本质上真实的位置还在原来的位置,设置margin还是原来位置的margin,移动后的位置是其影子,视觉效果上是移动了。1、相对定位有压盖效果,一般不用作『压盖效果』,作用就两个:2、定位: 脱离标准流 1、绝对定位和原来的自己的位置没有任何关系2、定位3、子绝父相 儿子绝对定位,父亲相对定位: 儿子设置绝对定位,儿子就跑到父div里面去了。否则会在父布局外面,如果有多个父布局设置

2022-07-03 14:34:03 541 1

原创 CSS盒模型、标准文档流、浮动

无论是div、span、a都是盒子,一个图片、表单元素一律看做文本看待。使用浮动浮动的性质:效果:原因是div没有高度,不能给孩子一个高度,要清除浮动,需要给父元素设置高度。 给父元素的div添加固定高度。 现实开发中高度很少出现,因为父布局会被内容撑高,很多没有高度设置。 子类div自己添加clear:both。clear:both:清除左右浮动对自己的影响,这种方式有一个问题,margin失效。两个div之间没有任何间隙了,设置margin属性不生效。 在box1和box2之前插入一个

2022-06-17 20:33:47 202

原创 CSS的继承性和层叠式

color、text-开头的、line-开头的,font-开头的这些关于文字样式的,都可以继承;所有的盒子的、定位的、布局属性都不能继承。多个选择器同时作用在同一个元素上时候,看权重,那个高,最后显示那个,优先级从高到低分别是:先比较ID选择器数量,在比较类选择器数量,最后比较标签选择器数量最后显示的绿色,因为ID选择器数量优先级高,所以以2为准了,如果都一样,谁写在后面,谁的生效。如果不能直接选中某个元素权重是0,如通过继承而来的权重是0,开始数权重之前一定要看看是不是真的选中文字所在的最内层的标签,没选

2022-06-11 11:18:39 681 1

原创 Google浏览器调试技巧

1、复制控制台输出的对象获取对象名称,然后输入copy函数,对象名称作为函数参数,然后回车,再粘贴。2、一键展开所有DOM元素鼠标光标放在箭头处,按住option,然后点击鼠标,这样div等全都展开了。或者右键选择expand recursively:3、网络请求重复请求一次network-->Fetch/XHR-->选择要请求的网络-->右键-->选择Reply XHR4、查看页面布局添加书签-->名称随便起一个,网址填写:..

2022-06-10 19:45:47 1378 2

原创 React路由6.0

上次介绍了react路由5.0的一些用法,这次介绍最新的路由6.0用法,相比5.0变化还不少。路由5.0:​​​​​​​https://blog.csdn.net/yoonerloop/article/details/124070341ReactDOM.render( <BrowserRouter> <App /> </BrowserRouter>, document.getElementById('roo......

2022-06-08 22:15:45 659

原创 css常用选择器

CSS常用选择介绍三、类选择器-可以重复1、单个class2、多个class(1)情况一只有class同时匹配到.aa.bb才显示红色,中间不能有空格(2)情况二aa下面的bb会匹配到,中间要有空格。 表示class为.aa的后代p变成红色,即喔喔1变成红色,中间使用空格,如果有多个应使用多个额空格隔开:.aa .xx h3 { } 后代选择器不需要选择每一个节点,只需要选择关键的几个节点就可以达到效果。这样上面的两个全是红色的了....

2022-06-01 09:38:13 774

原创 ref使用详解

一、字符串形式的ref(官方已过时)ref可以理解成打一个标识,类似于一个id,最终会收集到this对象的refs里面。<input ref='input1' type='text' placeholder='输入内容点击按钮' /><button onClick={this.showData}>点我提示</button><input ref='input2' onBlur={this.showData2} type='text' pl...

2022-05-25 20:24:41 4558

原创 listTodo项目二次练习

通过该项目熟悉,react的事件绑定、父子之间的数据传递,和分模块设计的理念,没有涉及到太多的东西,相比上次知识点用的比较少,但是更加注重细节和规范,显示效果如下:项目结构如下: 项目划分一个入口,四大组件分别:顶部的输入框、中间的list,list显示的item以及底部的footer,下面分别介绍。一、package.json{ "name": "my-app2", "version": "0.1.0", "private...

2022-05-17 20:12:54 328

原创 redux使用详解

一个状态管理的JS库,用于数据的共享。结构如下:安装:yarn add redux一、简化版的redux1、src/reducer/store.js//引入createStoreimport {createStore} from 'redux'//引入服务的reducerimport reducer from "./reducer";export default createStore(reducer)2、src/reducer/reducer.j...

2022-05-01 16:12:40 1444

原创 React中的路由

react推出了react-router的路由管理插件,实现了路由的核心功能,分别给web、reactnative、anywhere三个平台。 基于react-router实现的react-router-dom是给web端使用的路由,加入了在浏览器运行环境下的一些功能,核心基于history实现,分位hash路由和h5路由,其中h5路由兼容性有点差,需要后端支持,hash路由兼容行非常好,不需要后端支持。本博客介绍react路由基于[email protected],v6.0有所变化。一、路由

2022-04-23 13:19:30 1819

原创 React中表单数据提交获取数据的几种写法

一、非受控组件即:先用现取数据class MyComponent extends React.Component { render() { return ( <div> <form onSubmit={this.handleSubmit}> 用户名:<input ref={(e) => this.username = e} type='tex

2022-04-09 23:05:56 6004 1

原创 React脚手架结构介绍

Create React App 是一个官方支持的创建 React 单页应用程序的方法,如下:npx create-react-app my-appcd my-appnpm start结构如下:一、public文件夹 该文件是react项目的入口文件:<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"...

2022-04-04 11:49:41 1222

原创 React中this指向问题

render() { return ( <div> <h1>{this.state.data}</h1> <button onClick={this.click1}>测试1</button> </div> )}click1() { this.setState({ data:'click1' })}像这.

2022-04-04 09:45:12 485

原创 React 使用webpack打包

一、项目创建1、新建一个项目文件夹,打开终端,切换到到项目目录下:npm init -y这时候使用webstorm等高级的编辑器打开项目执行下面步骤效果会更直观。2、新建一个文件夹public,在文件夹内创建index.html文件,添加:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title

2022-03-27 11:15:15 5744 2

原创 JavaScript的对象访问机制

当你访问一个对象的成员的时候,如果对象自己本身具有,会直接返回给你,停止查询,如果对象自己本身没有,会自动去_proto_上访问,如果有就给你返回结果,停止查询。一、_proto_和prototype的区别proto是实例对象用来直接访问构造函数的属性,prototype是函数对象的原型属性。如下: function App(){ }App.prototype和new App().proto结果一致,new App().proto指向App....

2022-03-20 11:32:01 1112

原创 TypeScript语法学习

一、基本数据类型let b: boolean;b = true;//b = 3 //报错console.log(b);let num: number;num = 10;//num = false; //报错console.log(num);let st: string;st = '555'st = "yyy"console.log(st);二、数组//数组let arr: number[] = [1, 2, 3, 4]let arr2: string[] =

2022-03-20 10:33:08 941

原创 Kotlin函数参数

一、无参数的函数参数1、回调//定义interface OnClickListener { fun onClick()}private fun setOnClickListener(listener: OnClickListener) {}//使用setOnClickListener(object : OnClickListener { override fun onClick() { }})2、闭包//定义private fun setO

2022-03-13 13:22:34 2531

原创 Kotlin回调函数转协程

调函数转协程通常使用两个协程相关的类:suspendCancellableCoroutine和suspendCoroutine,前者可以通过cancel()方法手动取消协程的执行,而suspendCoroutine没有该方法,调用cancel()后协程不再往下执行,抛出 CancellationException 异常,但是程序不会崩溃,这样会更加安全,通常推荐使用suspendCancellableCoroutine。一、原始的回调方法interface OnClickListe...

2022-03-08 21:48:43 1151

原创 Android 配置https抓包

在Android中抓包常用fidder或者Charles,http可以直接抓去到请求信息,https抓取不到,如下:下面介绍两种抓包方案,可以轻松的获取请求的信息。一、使用用户证书1、application中android:networkSecurityConfig="@xml/network_security_config"android:usesCleartextTraffic="true"2、res/xml新建network_security_config:&l

2022-03-02 21:58:31 2699

原创 Flutter AppBar统一样式抽取

为了便于App的管理,统一主题风格,需要统一自定义标题栏和状态栏,效果如下:一、页面使用void main() { //定义状态栏 if (Platform.isAndroid) { SystemUiOverlayStyle _style = const SystemUiOverlayStyle( statusBarColor: Colors.transparent, //设置状态栏背景颜色 //statusBarIconBrightne...

2022-02-27 09:11:49 2381

原创 Flutter实现一个自定义的弹窗

标题、内容、取消,确认按钮都可以自定义,颜色也支持自定义,可以监听点击事件,运用的知识就是前面总结的flutter知识点的综合运用,效果如下。直接上代码:import 'package:flutter/material.dart';class AppDialog extends Dialog { final String title; final String? confirm; final String? cancel; final Str...

2022-02-24 22:24:12 4006 5

原创 Flutter中的点击事件和回调

不同于Android中所有的View可以通过设置点击setOnClickListener { }方法,在Flutter有些widget是不支持直接添加onPress事件的,用法和原生区别很大,列举了常用两种方式。一、InkWellInkWell中点击事件分为来管理点击回调和水波动画。onTap: () // 单击onDoubleTap: () // 双击onLongPress: ()// 长按InkWell( onTap: (){}, child: Cont

2022-02-22 21:32:35 4812

原创 Flutter自定义加载中的Loading

一、定义class YmDialog extends Dialog { final String title; const YmDialog(this.title, {Key? key}) : super(key: key); @override Widget build(BuildContext context) { // TODO: implement build return Center( //创建透明层 child: Mater..

2022-02-21 21:33:40 2798

Android模块化开发Demo

Android模块化开发、组件化开发架构Demo,由一个宿主App,一个基类library,其他三个module构成,以及页面路由ARouter的使用介绍,包括模块间数据传递,服务调用,常规跳转,带参数跳转,跳转监听,页面拦截,降级服务等功能和注意事项,详情查看个人博客。

2018-07-14

Dagger2Demo

介绍了Dagger2的常用使用方法,和演示案例,提供Dagger2的入门学习方法。

2018-06-30

Spinner下拉选项

Android的下拉选择实现Spinner自定义实现方法,优雅的弹窗Demo,效果很好。

2018-05-21

Android热修复Tinker

微信Tinker热修复的集成Demo,快速高效的热修复技术集成和使用。微信Tinker热修复的集成Demo,快速高效的热修复技术集成和使用。

2018-05-13

多渠道打包VasDolly

腾讯多渠道打包方案VasDollyDemo,支持多渠道快速打包,配置信息

2018-05-01

多渠道打包Walle

美团多渠道打包方案WalleDemo,支持多渠道快速打包,配置信息

2018-05-01

MVPDesignDemo

Android MVP设计模式Demo,包含view、modle、persenter三大模块的使用方法,结构关系!

2018-04-26

APP多渠道打包和混淆

多渠道打包测试方法二选一,命令行打包和studio视图打包,内含配置信息和详细代码,可以快速生成渠道包和混淆代码。

2018-03-22

BuliderDemo

建造者设计模式案例演示,类似于Retrofit对象创建的这类方式;Retrofit retrofit = new Retrofit.Builder(),可以配置各类信息,详情见代码。

2018-02-28

CanvasViewDemo

canvas画布的常用绘制draw方法,对画布的平移,旋转,缩放,错切,裁剪操作,六个demo清晰的展示每个操作。

2018-02-24

Anko的简单使用

Intent 的数据传递和包装器,文字弹窗、弹窗、选择列表、日志类等

2018-01-23

AccountManager账号管理

本demo基于AccountManager实现账户注册,账户登陆验证,退出登陆,自动更新,手动更新,批量更新用户名,获取指定账号,获取所有账号信息,代码完整,注释清晰。

2017-11-23

AndroidJSBridgeDemo

Android与H5,js通信框架使用,主要展示了 JSBridge调用Android端时,Android端数据的返回处理和回调处理,与js进行通信。

2017-09-20

fidder抓包工具免费版

fidder抓包工具免费版,下载安装,下一步下一步即可。用于app的资源包抓取,可以与android studio结合使用,抓取接口,请求,返回数据,非常方便。

2017-09-19

TopBaseActivity

标题栏的基类封装,所有的activity继承自TopBaseActivity,简单的几行代码就可以设置标题栏内容,图片,点击事件监听,界面布局内容。

2017-06-05

文件操作工具类-java

文件夹的复制,文件的复制,文件的读取,文件的写入,文件夹的复制,文件的复制,文件的读取,文件的写入,文件夹的复制,文件的复制,文件的读取,文件的写入

2017-03-05

uri转字符串路径工具

uri转字符串路径,解决4.0以上的兼容问题,

2017-03-05

ZXing二维码实现

ZXing实现二维码扫面,二维码图片识别,生成二维码图片,自定义二维码扫面的界面,闪光灯开的与关闭

2017-03-01

RefreshRecycleView

基于开源项目对RecycleView的进一步进行封装,实现多个头布局脚布局的添加,下拉刷新,上拉加载,点击事件的监听,ViewHolder与Adapter的封装,RecycleView分割线的设置

2017-02-16

Android版本更新

Android版本更新的代码,使用时直接集成到项目中,修改下URL即可,快速、轻捷、实用。

2017-01-23

react-webpack-demo

react webpack打包配置集成的Demo,可参考

2022-03-08

ChromePublic.apk

ChromePublic.apk

2021-10-15

ffmpeg-x264-fdk-aac-armv8-a.zip

Android ffmpeg的静态库和动态库,包含.a和.so,可以直接集成在项目中使用,包含 avformat avcodec avfilter swresample swscale avutil fdk-aac x264

2021-08-08

ffmpeg-armv8-a.zip

Android ffmpeg的静态库和动态库,包含.a和.so,可以直接集成在项目中使用,包含 avformat avcodec avfilter swresample swscale avutil

2021-08-08

TabDemo.zip

flutter的底部tab导航的Demo

2021-05-28

android-flutter-demo.zip

Android中集成flutter的演示Demo

2021-05-10

ApiDemo.zip

javawebAPi接口测试

2021-04-18

cms-bicycle-1.zip

React开发后台管理系统CMS技术栈总结(一)

2021-04-17

ffmpeg-4.3.1.zip

ffmpeg Android客户端so库,支持,基于ndk21,ffmpeg4.3.1版本,最低支持API21,音视频编解码,滤镜特性等功能。包含armeabi-v7a的so库和include。

2021-03-08

简书练习代码Demo

简书练习代码Demo

2021-02-21

retrofitTest.zip

retrofit网络请求测试服务端代码,基于Node.js编写,可测get,post,文件下载,单个文件上传,多个文件上传

2021-01-02

react-redux-connect-todolist.zip

react-redux-connect使用

2021-01-01

todolist.zip

react实现todolist的功能和优化

2021-01-01

DataPicker

时间日期选择器,该日期选择器高度,默认选择时间,颜色,字体大小,滑动弯曲效果,标题,取消,确定等等都支持自定义。详情参考Activity配置信息!

2019-04-13

备忘录模式

备忘录设计模式,可用于简单的学习!

2019-02-12

观察者设计模式

观察者设计模式,可以作为学习之用!

2019-02-12

责任链模式

责任链模式Demo,可以作为设计模式学习之用!

2019-02-12

FlowLayoutDemo

自定义ViewGroup,实现FlowLayout效果,一个类非常精简,代码不到100行,备注丰富,只需要布局替换为自定义的TestViewGroup即可,可扩展行强,子布局可以任意设置可以为文字或者图片等,可以设置横向竖向间距。

2019-01-23

RecycleView联动效果

RecycleView联动效果Demo,滑动其中一个RecycleView,另一个RecycleView跟着滑动

2018-10-22

HorizontalGridView

一个横滑的GridView,支持GridView的item动态配置,item点击效果

2018-10-18

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

TA关注的人

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