- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 前端埋点方案研究及在Android项目中的实践
目前Android项目主要使用友盟移动统计进行用户数据基本分析,友盟APM与腾讯buggly结合进行异常监控,使用优化后的代码埋点框架进行业务埋点。由于友盟统计越来越多的功能开始收费,同时随着项目业务数据分析需求的定制化发展,我们也需要对前端数据采集、监控与分析进行一步步的迭代发展,本地数据预处理优化后的ASM无埋点+优化的代码埋点框架+第三方数据分析平台辅助可以是一种比较全面的选择。
2023-03-20 16:31:56
982
原创 React Native Hook浅析——重头戏useEffect
前情提要《React Native Hook浅析——state处理》请先忘记所有class组件相关的知识,忘记生命周期回调函数,忘记this,忘记this.state,忘记一层层向下传递的props,然后,开干。rendering(渲染)函数组件渲染是由state、props改变引发的,结合上一小节,我们可以知道当state或者props变化时,会调用React的render方法发起渲染,对于函数式组件,我们可以理解成重新执行函数组件的内容(箭头函数里的代码)。基于此,组件每一次渲染都会有自己的pr
2022-05-23 09:57:13
1340
1
原创 React Native Hook浅析——state处理
前言前提知识:函数式组件在每次props、state变动时,都会重新执行整个函数,重新渲染页面。在使用React的class组件时,我们可以使用state,this.xxx,以及生命周期(componentDidMount、componentDidUpdate、componentWillUnmount)等钩子,但函数式组件却无法使用这些,为解决这个问题,React在函数式组件中引入了hooks(class组件无法使用hooks)。Hook是指是一些可以在函数组件中“钩入”React state及生命周期
2022-05-17 17:19:03
1003
原创 React Native发布——使用AppCenter
前言本文基于React Native开发环境搭建,默认已搭建好XXProject的react native项目。
2022-03-09 19:48:56
3575
1
原创 React Native开发环境搭建
前言本文基于react版本17.0.2、react-native版本0.67.3,使用mac开发,介绍基于现有Android、IOS原生项目搭建react native开发环境,强烈建议使用个好一点的梯子。RN环境搭建以下步骤已安装的可跳过首先安装Homebrew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装 Node 和 Watchman
2022-03-02 17:54:16
5636
1
原创 Android Handler机制·一(入门篇)
源码解析总体类图先来个大概印象:原始例子 fun testOriHandler() { var handler1: Handler? = null var handler2: Handler? = null thread { Looper.prepare() handler1 = object : Handler() { override fun handleMessa
2020-09-03 18:37:56
585
原创 Android Handler机制·二(基础篇)
彻底搞懂Handler、MessageQueue、Message、LooperWhatAndroid线程间通信
2020-08-24 17:40:14
220
原创 设计模式 in Android
一直没有联系实际地系统使用过设计模式,特撰此系列,纯当探索与记录设计模式在android源码以及实际使用中的应用,同时延展相应的知识点。系列主要参照《设计模式之禅》这本书的顺序进行,文中代码全部使用kotlin,kotlin也自带了超多的设计模式供方便实用。设计模式主要是面向对象编程,而其六大原则(基本记不全…):单一职责原则一个类只负责一项职责,能做到两个不同的职责类其中一个修改时,不会影...
2018-09-25 17:00:59
128
原创 设计模式 in Android——单例模式
前言一直没有联系实际地系统使用过设计模式,特撰此文,纯当探索与记录设计模式在android源码以及实际使用中的应用,同时延展相应的知识点。可能分好几部分完成,主要参照《设计模式之禅》这本书的顺序进行。设计模式面向对象六大原则,总是忘记,记个思想就行,此处罚抄一遍: 1. 单一职责:一个类应是一组相关性很高的函数、数据的封装,两个完全不一样的功能不能放到一个类; 2. 开闭原则:对修...
2018-09-14 17:08:41
235
原创 从零开始搭建linux android jenkins持续集成
前言此次编辑时间为2018-9-9,所有程序版本尽量使用最新版。搭建顺序大致为服务器->jenkins安装->android环境搭建->配置android任务,本片只是搭建基本的android项目持续集成,更深层次的玩法,如集成tinker热更新、自动分发等,后续再继续(随缘…)补充。服务器搭建——腾讯云腾讯云乞丐版,良心学生价10元/月,买不了吃亏买不了上当,但是1...
2018-09-09 12:10:37
2144
原创 Tinker快速集成
Tinker快速集成本文使用的是tinker的1.9.6版本,使用gradle方式接入。具体的接入方式可参考官方接入指南。1. 引入tinker在项目根build.gradle中:buildscript { repositories { jcenter() } dependencies { classpath 'com...
2018-05-16 11:18:52
673
原创 Android UI性能优化
屏幕上某一像素点在一帧中被重复绘制多次,就是过度绘制 多数手机的屏幕刷新频率是60hz,在1000/60=16.67ms内没有办法把这一帧的绘制任务执行完毕,就会发生丢帧的现象。丢帧越多,用户感受到的卡顿情况就越严重。这里的绘制包含了所有View的meature、layout、draw等,CPU的计算,以及GPU的栅格化渲染等一系列操作,也就是说,一般我们需要在16ms以内完成单次绘制的所有工作...
2018-03-05 15:53:56
253
原创 Android Toolbar头部及其扩展
一、ToolBar基础使用Toolbar是Android 5.0推出的一个Material Design风格的导航控件 ,与之前的Actionbar 相比,Toolbar更灵活,它实质就是个ViewGroup。Toolbar可定制性很强:这是一个典型的ToolBar例子,示例代码网上一大堆了,此处就不赘述了,需要注意的是,上图的clock是个在ToolBar中的自定义控件。在使用时,必须先隐藏系统原
2017-12-26 12:16:23
697
原创 Android clipChildren与clipToPadding使用以及简单ViewPager自定义切换效果
首先看看我们要实现的效果: 主要希望实现两个效果: 1. 滚动的文本框在TITLE“下方“穿过,但初始时,文本框是有TITLE的高度的”paddingTop”的; 2. 下方第三个图标的高度超出其所在的父控件高度。 先上布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://sche
2017-10-18 23:45:41
2408
原创 OKHttp3初始化与配置
OKHttp3初始化与配置OKhttp在使用时,最基本的组成部分是OkHttpClient、Request、Call和Response,需要进行初始化的主要是OkHttpClient和Request。OKHttp3初始化与配置OKHttpClient常用配置项Https配置拦截器其他设置Request参考资料OKHttpClient一般情况下,全局只需一个OkHttpClient实例(
2017-10-11 22:35:28
10395
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人