自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 H5性能优化与体验优化——极致篇

性能优化H5的性能优化有一个很重要的指标——首屏加载速度。而我们一般所说的H5性能优化指的也是如何提升首屏加载速度。而我们常用的优化首屏速度的方案,可以大致总结为以下几种:首屏资源懒加载,延迟加载首屏资源gzip和cdn加速减少js包大小图片裁剪或压缩具体可以参考文章,一般优化后都能有不错的效果 。随着我们项目用户数越来越多,对性能要求也越来越极致。为此,我想到了一些其他的方案。一、页面数据本地缓存用户的网络情况是是否复杂的,经常还会遇到弱网情况。可以将页面的数据缓存到本地,用户下次打

2021-12-11 16:05:47 4087

原创 (2020.12.7)初次web前端性能优化记录

(转载公司内部论坛本人文章2020.12.7)导语: 作为客户端开发,由于项目的需要,最近一年陆续做了很多web前端的需求开发。但过去做的大部分都是单页面的运营H5,上线时间短,一般保证能稳定运行就行,并没有考虑太多性能相关的问题。最近半年承担了王者荣耀大众赛事H5的开发工作,需要长期维护,而且是多页面的,这就不得不考虑H5性能相关的问题了。我之前有做过安卓App冷启动时间优化(有兴趣的可以翻翻我之前的文章),此次接到优化H5首屏速度的需求,自然而然就想起过去优化客户端的一些经历,其中一个心得便是——尽

2021-07-15 13:49:00 1091

原创 (2020.04.29)Android启动速度优化探讨与总结

(转载公司内部论坛本人文章2020.04.29)导语: 大家作为普通用户,使用App时或多或少有这样的感觉,如果一款App启动时间比较慢,就会给人感觉这个App很卡,很占用资源,会影响用户再次打开App的欲望,严重的话,甚至会卸载App。所以优化App的冷启动速度是十分有必要的。一、App冷启动过程App的冷启动过程可以理解为就是Activity的启动过程,只不过启动时,系统检测到启动的Activity的进程不存在会先创建该进程。详细过程如下图:冷启动时间定义:对于普通用户,能感受到的App启动时

2021-07-15 13:41:34 676

原创 (2020.7.6)Android Xposed防护总结

(转载公司内部论坛本人文章2020.7.6)xposed原理Android系统中,Zygote进程在启动的过程中,会创建一个Dalvik虚拟机实例,同时将Java运行时库加载到进程中来,以及注册一些Android核心类的JNI方法到Dalvik虚拟机实例中去。而我们知道,系统其它所有进程都是由Zygote进程孵化的。Zygote在启动新的app进程时,都会将自身的Dalvik虚拟机实例复制到该App进程里,形成该App独立的Dalvik虚拟机实例,同时还会与Zygote进程一起共享Java运行时库。所

2021-07-15 13:36:06 1059

原创 (2020.6.15)Android异步方式与线程池的探讨

(转载公司内部论坛本人文章2020.6.15)导语: Android开发中,我们为了提高性能,往往会把一些耗时的操作放在异步线程中执行,比如文件读写和网络请求。Android开启异步线程的方式多种多样,我们该如何选择异步方式,又该如何合理使用线程池呢?之前项目中,开启异步线程的方式没有统一,存在new Thread和new Handler多种方式。这种混乱的异步方式不利于线程管理,频繁创建和销毁线程也带来了一定的性能损耗。为此,我在为项目添加线程池的过程过程中,对Android的异步方式和线程池做了一些

2021-07-15 13:30:35 196

原创 (2019.5.29)关于drawable你可能不知道的一些事

(转载公司内部论坛本人文章2019.5.29)导读: Android项目中,官方建议将不同分辨率的资源图片分别放在drawable-mdpi,drawable-hdpi,drawable-xhdpi等不同的drawable文件夹下,以便不同分辨率的手机加载不同的图片资源,从而实现不同手机上图片显示大小一致。那么,不同的手机是根据什么来决定加载哪个drawable文件夹下的资源图片呢?加载不同drawable文件夹下的图片对图片宽高和内存会有影响吗?假设手机对应的drawable文件夹下没有该图片资源,又该

2021-07-15 13:26:56 498

原创 (2019.6.24)Android巧用点九图实现复杂布局

(转载公司内部论坛本人文章2019.6.24)问题一开发过程中经常会遇到过这样的问题,设计师切了一张下面带阴影效果的Button背景图(图1),如果直接拿来设置background,属性用android:gravity="center",你会发现文案会在背景偏下方的位置(图2)。因为Android并不知道这张背景图下方是有阴影的,所以整张图的center自然不是我们想要的的center。当然这个也不是什么大问题,你完全可以用属性android:padding来调整文案的位置,让它居中。问题二再看

2021-07-15 13:16:52 296

原创 (2019.12.06)Java注解简单实践教程

(转载公司内部论坛本人文章2019.12.06)Java的注解之前使用注解比较少,特此去了解了一下,并用注解对JsBridge代码重构了一下。重构后跳转Activity传参的方式如下:改造前:改造后:其中 @JsParameter(“xxx”) 里面参数和json的key对应,然后BaseActivity里做了给加注解的成员变量自动赋值逻辑。可以看到,加了注解后,逻辑更加清晰了。之前那种方式,如果开发一不留意改了变量的命名,就会造成JsBridge跳转失败,加了注解后,可以规避这个问题。Bas

2021-07-15 13:09:12 136

原创 (2019.12.3)AsyncTask源码分析

(转载公司内部论坛本人文章2019.12.3)项目中之前对页面数据做本地缓存,读写缓存时是用了AsyncTask做了异步操作: public void getCache(String key, final Class<Rsp> type, final OnCacheListener<Rsp> onCacheListener) { if (!TextUtils.isEmpty(key)) { new AsyncTask<Strin

2021-07-15 13:03:06 159

原创 (2018.11.08)Android Profiler基础使用

​(转载公司内部论坛本人文章2018.11.08)一、概览导语 : 2017年Google I/O大会上发布了Android Studio 3.0,其中一项更新是将之前内置的Android Monitor换成了Android Profiler。最新版Android Studio3.2已经移除了DDMS的入口了,感觉Google是想用Android Profiler完全取代DDMS。在Google官网有几篇文章介绍了Android Profiler使用方法,这里我只是做了一下搬运工,结合自己的Demo

2021-07-15 11:20:01 1178

原创 关于AsyncTask的Executor的一些研究

AysncTask的基本使用和Executor介绍

2017-09-26 12:08:06 754

原创 分析Handler异步消息机制关键步骤

Handler关键步骤

2017-09-07 09:44:09 285

原创 TraceView的使用

TraceView的使用

2017-09-07 09:42:52 321

原创 图片最大纹理高度

每个手机能显示的最大图片高度是有限的,超过则无法正常显示。

2017-09-07 09:41:50 1775

原创 build.gradle配置说明

build.gradle

2017-09-07 09:40:56 426

原创 Android开发也需要了解的TCP\IP和Http知识

TCP\IP、Http常识

2017-09-07 09:40:05 485

原创 Android动画的几种实现方式总结

动画实现方式总结

2017-09-07 09:38:38 393

原创 Handler内存泄漏分析

非静态内部类默认持有外部类的引用造成内存泄漏

2017-09-07 09:37:39 236

原创 SurfaceView入门和一个简单例子

SurfaceView入门

2017-09-07 09:35:04 519

原创 Bitmap占用内存计算

一张图片(BitMap)占用的内存 = 图片长度 x 图片宽度 x 单位像素占用的字节数

2017-09-07 09:31:52 592

原创 Android常用自定义形状方式

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android= "http://schemas.android.com/apk/res/android" android:shape="oval"> <!-- shape的形状,默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)-

2017-09-06 18:00:05 893 1

原创 使用NumberPicker遇到的一个坑

使用NumberPicker遇到的一个坑根据需求,要实现NumberPicker的items动态数量、内容动态变化。所以需要执行以下代码:mNumberPicker.setMaxValue(maxValue);mNumberPicker.setDisplayedValues(displayedValues);这里要需要注意的是setMaxValue。如果mNumberPicker对象原本的disp

2017-09-06 17:50:50 2535 1

空空如也

空空如也

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

TA关注的人

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