自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(170)
  • 资源 (2)
  • 收藏
  • 关注

原创 照片墙10w以上张照片梳理,照片列表、多选上优化设计及实践

1. 背景第一期优化了加载效率,比如合理增加并发线程数,提升快速滑动缩略图等待,因为使用测试账号数据比较少(不超过1W),只对当前测试出现的问题进行点对点上的优化。对大数据的照片,出现新上传的照片显示很慢,多选照片操作卡顿。缺少没有专门针对大数据照片测试,没能发现旧的代码上及加载机制上的问题,导致这块优化缺失,本期专项对大数据照片进行分析及优化,优化前后的效果见末尾屏幕录制的视频所示。2. 照片墙原有业务流程整体的业务流程比较多,交互比较繁琐。3.优化措施具体优化措施..

2022-03-15 11:01:34 702 1

原创 纪念相册的照片列表模块业务及模块优化

背景纪念相册在打开后,列表下拉或上拉,频繁卡顿;在界面停止不动的情况,容易出现概率性崩溃,列表如下分析纪念相册主要由2部分组成:头部图片列表动画播放及列表图片组成优化根据以上分析的结果来制定优化方案如下所示:以上的优化的接口可达到以下的目的:减少80%以上的网络请求次数,降低用户网络流量损耗,提升服务器的单用户可负载能力 减少80%以上列表刷新次数,大幅降低开辟和销毁新内存次数,降低内存抖动,避免OOM 消除了列表的卡顿崩溃没有发生...

2021-10-25 16:33:19 135

原创 照片墙时间轴快速拖动的加载优化

1. 背景照片墙的右边有个时间轴,可以快速下滑定位到某天,如下图所示:快速拖动到某个位置,需要等待9s左右才开始加载第一张图片2.分析 在当前界面加载完后,稍微往上拉或下拉时,上面有好几行的预览图已被加载;即快速拖动到某天,但是预览图仍然在加载当前可见区域外的view的预览图;因此是否可以中断当前的所有的加载任务,当时间轴停下来时立马加载当前可见区域预览图?3.优化3.1 移动立即停止加载在时间轴被移动的时候,立即暂停glide的所有加载,这个可以通过调用...

2021-08-10 11:35:23 264

原创 Glide及okhttp配置优化,开启多线程大幅提升加载速度

1. 背景app的照片墙功能中,满屏是小的图片加载速度是惨不忍睹2. 分析

2021-08-06 11:15:32 3226

原创 Glide 4.11.0版本在访问失败的情况下,会二次重试

1. 背景项目使用Glide作为图片加载控件,自定义ModelLoader2. 问题在自定义DataFetcher中,发现loadData在失败时,再自动调用这个方法,因此被加载了2次;原先是在这边添加失败重试的,现在是导致多次调用,重试多次。3. 排查3.1在自定义ModelLoader添加log发现这个方法被调用2次,即加载的任务被加载到队列有2次。3.2 对比图片加载成功和失败 在成功加载时,在自定义DataFetcher的方法loadData只被调用一次...

2021-08-04 15:46:49 2133 1

原创 照片墙性能分析

1.背景移动Android端照片墙跟竞品比较在图片很多的情况,加载的速度及图片显示的比较慢,如下图所示2.分析照片墙的显示拆解为2大模块流程,先是分页拉取图片列表,然后拉取可见区域图片的预览图,然后显示。为了定位到底是哪一步出现问题,下面将进行以下的测试。2.1列表加载性能在当前的图片列表的上面添加个文本显示框,加载图片列表就显示其的图片id部分信息,这样可以区分取到底是没有拉取图片列表的还是没有拉取图片的预览图的问题。...

2021-07-07 18:17:38 210 2

原创 一刻相册反编译及分析

1.反编译应用商店下载最新版本一刻相册apk,使用jadx工具反编译1.1代码信息1.1.1编程语言使用kotlin,使用okhtt3p作为网络访问库1.1.2框架使用谷歌官方的jetpack的mvvm模式1.2图片加载控件信息1.2.1 照片墙使用了开源控件glide作为图片加载控件,我们也是使用glide作为图片加载控件1.2.2照片列表的item的view是自定义并继承ViewGroup1.3列表加载信息根据反编译的信息,就看到一个“fetchCloudList

2021-07-07 17:58:49 524

原创 HarmonyOS学习资料整理

HarmonyOS1.图片圆角功能https://bbs.elecfans.com/jishu_1998578_1_1.html2.开发例子2.1.HarmonyOS-Notehttps://github.com/bingoogolapple/HarmonyOS-Note2.2.RxHarmonyoshttps://github.com/gm365066360/RxHarmonyos2.3.api 手册https://developer.harmonyos.com/cn/docs/do

2020-12-22 19:10:12 455 2

转载 单例的几个要点

1.单例的double check lock变量为什么需要使用volatile?2.内部类实现单例,但是实现的原理是什么?上面2个点有点迷惑:摘录个挺好的说明:https://blog.csdn.net/mnb65482/article/details/80458571双重锁懒汉模式(Double Check Lock) public class SingleTon{ private static SingleTon INSTANCE = null; .

2020-09-22 09:29:38 220

原创 整理下工作中遇到特殊的业务、难点解决

最近被面说说工作亮点,我当时是一时懵逼,瞬间脑袋空白,这次要稍微整理下自己工作遇到相对比较大问题及解决方法,免得二次还是出现这个情况:1.大图浏览,后台list加载;背景:显示的时刻列表如上,当前列表是每天最多10张图片信息,当点击某一张图片进入大图浏览时,要按照顺序(按照时刻从该点开始进行所有的图片浏览);进入大图时,只有这天的10张图片信息;实现的所有图片步骤是:1)根据点击的图片所属的日期及这天的索引,在时间轴(从服务器拉去的时间轴,有日期对应这天的数量的列表),计算这张.

2020-09-15 11:59:43 799

原创 pjsip相关学习

1.pjsip项目githttps://github.com/pjsip/pjproject2.pjsip环境搭建 1)客户端 PC windows https://www.microsip.org/downloads Androidhttps://github.com/mahmudur85/PjDroid/tree/master/PjDroid2)服务端https://github.com/sxcong/pjsipvideo_demo/tree/mast...

2020-09-04 14:54:38 245

原创 Android Studio包名大写导致dex找不到路径的类的问题

背景: app壳工程,引入第二个组件工程,报错如下:解决过程:在排查中发现AndroidManifest.xml的包名最后一段名字有大写,是包名与路径不符合的不符合的问题。

2020-06-09 17:10:10 404

原创 flutter学习记录

1.flutter异步任务及单任务模式理解:深入理解Flutter多线程:https://blog.csdn.net/LiuXiaoZhuang_CSDN/article/details/895778782.future then理解:Flutter进阶篇(4)-- Flutter的Future异步详解:https://www.jianshu.com/p/c0e30769ea7e...

2019-11-08 11:17:46 232

原创 Android 使用 HTTPS SSLProtocolException sslv3

之前转载的文章并没有解决问题,继续排查Android的盒子系统19在https下访问发生了握手失败,失败的log如下:2019-10-14 10:24:43.344----3809:pool-3-thread-1----b----catch IOException : javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtoc...

2019-10-15 11:09:14 924

转载 Android 使用 HTTPS 问题解决(SSLHandshakeException)

title date categories tags Android 5.0以下TLS1.x SSLHandshakeException 2016-11-30 12:17:02 -0800 Android Android ...

2019-10-14 18:41:40 5147

原创 Android ijk视频播放器使用TextureView问题

在视频播放器添加了个菜单,能多次在系统播放器和ijk播放器切换,但是在二次切换ijk播放器出问题:TextureView二次切换初始化时不会回调SurfaceTextureListener。 原有的ijk播放器的流程是在布局中声明TextureView,然后设置SurfaceTextureListener;估计是在初始化后,不能再二次绑定; 因此,可以在布局声明个容器,动态new个...

2019-08-29 16:53:44 1031

原创 Glide 加载优化

Android一般情况使用Glide加载图片,但是使用不注意就会有些问题:比较大的list的图片列表快速滚动,当前的图片需要等前面的加载才可以加载,分析如下:1. listview的item中使用glide加载图片,当有需要对加载图片二次处理使用重新simpleTarget,然后给into,如下所示 Glide.with(mContext).load("http...

2019-05-23 18:08:19 4450

原创 外部应用使用FLAG_ACTIVITY_NEW_TASK启动activity问题

问题描述:   外部应用使用Intent.FLAG_ACTIVITY_NEW_TASK,启动桥接的activity切换对应的功能界面显示时,第一次能启动对应的activity,在没有退出的情况下,第二次启动时,这个activity的生命周期并没再调用;解决:   因为外面不能使用广播功能,因此只有在桥接的activity收到的情况下,发出广播,收到的广播里再启动目标的activity,...

2019-01-09 18:55:59 3009 3

原创 TextView 文字不能滚动问题

现象:  TextView 布局中原来是gone不可见状态,设置可见状态时,并设置select(true)时,文字不能滚动;解决:  textView设置为Visiable后,不能马上设置为select(true),延迟执行select(true)即可解决。...

2018-12-13 16:04:05 2026

原创 爬sobooks电子书并把电子书的信息记录到mysql中

使用python3+selenium+chromeDriver爬sobooks的电子,记录书的信息(书名,作者,描述,出版时间等),转存到自己的百度云盘环境:安装xmapp,下载chrome对应的chromeDriver.exe放到python安装目录下及安装python连接mysql的插件:pymysql以下为配置文件:config.json1.百度云的账号及密码  "baidu...

2018-12-01 22:09:46 7800 6

原创 python3 mysql插入数据冲突

1.问题:使用python3 进行数据库插入报以下错误:(1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")2.排查:数据连接已经是utf-8;再一看,发现mysql的字段为latin类型因此可以判断是...

2018-12-01 12:55:30 518

原创 也说网盘

这些年在做网盘,一直在忍受着做UI改来改去,一段时间又来一次全新改版;而且是以增加用户活跃率的名义来要求改;无力吐槽忍住,有时想想整理下关于网盘的个人思路:1.为什么要用网盘 原因如下:     a.手机存储卡、pc磁盘不够大;  b.资料可以异地读写;  c.网盘有我没有的资源,可以到上面查找;  d.备份重要的资料,低频使用功能。2.使用频率 a.存储容量不...

2018-11-02 18:02:56 166

原创 android 原apk替换androidManifest.xml的metaData的多渠道自动打包

在已经编译出一个apk的情况下,其他的渠道只是改变androidManifest.xml的metaData信息,在这个情况下不需要再编译apk,只需要修改androidManifest.xml;实现的思路如下:1.获取源androidManifest.xml;因为apk里的androidManifest.xml是已经编译为二进制的文件,不好修改;可以使用apktool把源apk反编译得到andro...

2018-06-05 16:53:01 2945

原创 Android VideoView 播放停止在时间点

播放一个视频,需要停止在某个时间点上,原始的思路是在start后,使用handler延时到具体的时间点发送消息,消息的处理是视频pause;但是在某些情况出现在停止的时间点跟理想的时间不一样,假如时间点比较小的情况,有可能是视频还播完就调用pause了。解决:监听setOnPreparedListener事件,在回调时在发起延时handler,这样可以避免视频源准备阶段时间过长,实际停留的时间贴近...

2018-05-16 17:51:25 2932

原创 TV盒子大图浏览优化

  TV盒子在高分辨率时会有马赛克、图片加载缓慢及模糊情况,特别注意的是修改盒子的分辨率仅仅是修改输出的视频流的分辨率,对盒子系统本身的分辨率时没有任何影响,其他的参考优化方案如下:glide、加载缓冲及调试屏显信息输出,其中,屏显是有助于定位问题及解决。...

2018-04-24 21:58:39 614

转载 《客厅TV-APP HttpDNS技术接入与实战》

《客厅TV-APP HttpDNS技术接入与实战》原创 2018-04-12 yujieliu 腾讯Bugly1 项目概况域名劫持大家并不陌生,从PC时代到移动互联时代,网络安全愈发重要,劫持方式更是层出不穷。现在到了智能客厅时代(意淫一下),如果说移动互联时代由于开放性和竞争性,大的厂商还是有良知的,比较注重口碑二字,但客厅由于其封闭性,无良厂商只手遮天,各类监控、各类弹窗广告、各类精简系统、各...

2018-04-12 21:24:14 1823

原创 2017工作总结

今天写完了2017工作总结,这边备份下

2018-03-13 17:31:16 249

转载 《广研Android卡顿监控系统》

实现背景应用的使用流畅度,是衡量用户体验的重要标准之一。Android 由于机型配置和系统的不同,项目复杂App场景丰富,代码多人参与迭代历史较久,代码可能会存在很多UI线程耗时的操作,实际测试时候也会偶尔发现某些业务场景发生卡顿的现象,用户也经常反馈和投诉App使用遇到卡顿。因此,我们越来越关注和提升用户体验的流畅度问题。已有方案在这之前,我们将反馈的常见卡顿

2018-01-22 20:56:24 3105

原创 listview嵌套滑动

实现list的标题的滑动显示与否,很多例子使用CoordinatorLayout,AppBarLayout,RecyclerView就能完成,在不使用AndroidDesignSupport包下需要实现listview实现NestedScrollingChild,父及view实现NestedScrollingParent;1. 有关NestedScrollingChild,NestedScro

2018-01-12 18:34:43 520

原创 node.js代理转发get和post,拦截指定api下发的自定义数据

有些时候老是依赖后端才能部署灰度才能调试,现在可以直接路上袖子直接干,只拦截特定path,来下发自定义的数据;其他的做转发处理;这样可以提升客户端的开发效率。1. 安装:node.js2. 安装 request npm init --yesC:\Users\Administrator>npm install request --save3. 把一下代码保存到后缀名为js的文

2017-11-03 18:11:53 2799

原创 仿时光相册里列表滚动条

1.点击显示当前显示日期;2.放手则收缩,过三秒自动隐藏。控件代码如下ScrollFloatBar.javapublic class ScrollFloatBar extends FrameLayout { private static final String TAG = "ScrollFloatBar"; private IScrollClick

2017-09-08 18:53:14 507

原创 多渠道打包图片资源替换

多渠道打包时,有个别渠道需要替换图片;按照目录的结构不同,有以下方式实现:1.不改变android studio的目录结构   即,如下实现替换方式:在main的同级目录下新建渠道名,建立保持跟main的res目录结构,加上要替换的资源图片即可;如下所示:2.非源目录结构替换  在build.gradle修改了目录结构

2017-08-01 16:23:40 1535

转载 java.lang.IllegalArgumentException: Comparison method violates its general contract!

异常信息[java] view plain copy print?java.lang.IllegalArgumentException: Comparison method violates its general contract!  at java.util.TimSort.mergeLo(TimSort.java:747)  at

2017-07-28 18:17:18 421

原创 VLC android 3.0解码器使用及移植TV项目调研

1.是什么VLC  Media Player (VideoLAN) 为 Windows、Linux、OS X、Android、iOS、Windows Phone 等平台提供一个视频播放器、解码器。它可以播放来自网络、摄像头、磁盘、光驱的文件,支持包括MPEG 1/2/4, H264, VC-1, DivX, WMV, Vorbis, AC3, AAC等格式的解码。VideoLAN 代码开源,可

2017-07-10 23:00:02 2637

转载 15 个 Android 通用流行框架大全

15 个 Android 通用流行框架大全1. 缓存名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载名称描述Android Universal Image Loader一个强大的加载,缓存,展示图片的库

2017-05-14 00:03:58 316

转载 AndroidFlux项目一览-Flux架构的Android移植

AndroidFlux项目一览-Flux架构的Android移植 作者 ntop 关注2015.12.24 23:55* 字数 2350 阅读 7375评论 24喜欢 55这篇文章是我在Github上发起的AndroidFlux项目的Overview页面。简要介绍了AndroidFlux的项目背景和Flux的基础知识。如果你对此项目感兴趣欢迎加入An

2017-05-14 00:01:21 396

转载 安卓中的Flux架构

安卓中的Flux架构泡在网上的日子 / 文 发表于2015-08-16 19:31 第6127次阅读 架构,Flux8编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!英文原文:Flux Architecture on An

2017-05-13 23:15:51 575

原创 使用shttpd接受上传文件的问题

在嵌入板上使用shttpd作为服务端,接受客户端http上传文件时发现内存会越来越大;解决:1.调试跟下,接收的buff大小不变,因此不是接收空间的问题;2.发现基本上接收到二十多M就会被系统检查到超出了内存,因此被杀掉;解决:原因是写文件时,只是调用write接口,但是板上判断大小这块有点问题,不会自动把缓存写入到外部文件去,因此只需要在接收到一定大小的缓存内容时,及时使用f

2017-02-17 18:54:12 1130

原创 ghttp作为客户端下载大文件的问题

使用开源库ghttp作为http client,板子测试发现当下载大文件时出现崩溃情况;查了,发现问题是:http_trans.c中http_trans_read_into_buf(http_trans_conn *a_conn)函数 a_conn->io_buf = realloc(a_conn->io_buf, a_conn->io_buf_len

2017-02-15 18:47:39 1310 4

原创 虚拟机的Ubuntu系统启动突然只能guess账号登陆解决方法

昨天依旧挺好用,今天突然只能guest账户登录,输入点击不断闪,晕死了;查找了很多方法,最终解决是:1.进入中断命令模式Ctrl+Alt+F12.输入账号密码后进入管理员的命令模式vi /usr/share/lightdm/lightdm.conf.d/50-guest-wrapper.conf最后添加一行禁止guest账户:allow-guest=false

2016-12-14 11:56:53 1421

depends工具-分析发布应用依赖的文件

depends工具,分析发布应用依赖的文件

2013-02-27

修正编译过的busybox的源码,验证过在android上能使用

用arm linux交叉工具来编译

2012-12-12

空空如也

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

TA关注的人

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