自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 做业务的程序猿如何提升技能?

每个程序猿都逃脱不了那个做业务的阶段,或多或少有些难以忘怀的记忆吧。现状天天被需求追着跑、被各路人马轮番“喷”、参加各种会议是我们做业务人多日常常态,然后晚上加班做各种需求,还要按各种批,真是身心俱惫。对于我们来说,难道就这样子了么?当然不是,我们也要进步。如何提升自己1、学习业务既然我们是做业务的,我们就需要利用我们的优势,理清业务的基本逻辑,指出改业务的难点在哪里,是否有更好的路径去提高业务场景所带来的效益(日活、收入等),不要把自己当成工具人,而是当成局中人,思考是最重要的。哪怕以后不在公司

2021-10-30 13:16:37 1191

原创 Android性能优化-Apk瘦身(3)

接Android性能优化-Apk瘦身(1)Android性能优化-Apk瘦身(2),今天我们说些总结。上述两文,我们述说了Apk瘦身从哪些方面入手,哪些地方值得我们去发现问题以及解决问题,这篇文章我们总结下常规性操作,包括grade打包配置。1、资源文件优化a、项目中可选择对主流的dpi支持,例如我们项目目前选择xxhdpi作为对标,对于大图片,可以通过网络加载方式执行。defaultConfig {resConfigs "zh" //表示只使用中文resConfigs "xxhdpi" //

2021-10-30 13:13:52 613

原创 Android性能优化-Apk瘦身(2)

今天我们接上篇Android性能优化-Apk瘦身(1),聊一聊res资源文件的优化。1、res资源文件优化随着我们项目功能越来越多,越来越负责,迭代也越来越多,项目中使用的资源文件也越来越多,也越来越复杂。a、删除无用的资源文件我们在Android studio中点击Refactor->Remove Unused Resources,此时出现这种方式我们是工具觉得这些资源无用的,我们需要有自己的辩证,那些资源能删除,那些资源不能删除,不能删除的需要把还原。b、当然我们也可以先查看那些

2021-10-30 13:08:43 1111

原创 Android性能优化-Apk瘦身(1)

接下来我们会聊一聊Android的应用瘦身。1、Apk结构上图是我用android studio打开一个apk文件所展示的截图,从上图我们可以看到,一个apk中有res、lib、dex、assets等文件组成,其中res、lib占了整个apk的70%左右的空间。lib: 包含特定于处理器软件层的编译代码。该目录包含了每种平台的子目录,像armeabi,armeabi-v7a, arm64-v8a,x86,x86_64,和mips。大多数情况下我们可以只用一种armeabi-v7a,但目前各大应用市场

2021-10-30 12:33:37 1220

原创 Android性能页优化-启动页优化

这些天跟聊了下启动页优化问题,这是一个老生常谈的问题了。1、App启动方式:a、冷启动;应用被杀死,后台没有对应的进程的启动b、热启动;后台有应用进程的启动我们需要启动页优化,主要也是针对冷启动时候优化。在冷启动过程中我们应用是这样子执行的:由以上图我们可以知道,如果我们要优化启动速度点话,重点要把主线程在Application、启动Acitivity上的耗时减少以此达到优化目的。2、启动时白屏和黑屏设置启动Activity的theme的style包含windowBackground,他将

2021-10-30 12:28:59 891

原创 Android性能优化—网络优化

网络优化是一个比较大的命题,今天聊一聊在我们业务使用中必要的优化点。网络请求的划分网络优化按照业务区分可以分为日志收集、业务请求;按请求的优先级划分可以分为高优先级、中优先级、低优先级;按请求的重要性又可以划分为非常重要、重要、一般、可抛弃;按照请求频次又可以划分为高频次、一般频次、低频词。例如我们的日志收集就属于低优先级、高频次并且可抛弃的网络场景,对于这种网络场景,我们可以采取独立的线程池且不需要任何网络重试操作方案;我们可以针对网络应用场景的优先级、重要性、频次等来决定该场景应该采用怎么样的网

2021-10-30 12:25:37 538

原创 业务如何应对App隐私政策带来的风险

今年应用市场对于App隐私政策方面有很多要求,抓得也特别严格,一个不小心就来个通知警告,来个下架,日子不好过…基于此,下面就聊聊我们如何应对这相关政策:1,看大厂的App如何做的,我们可以模仿他们的做法来搞,尤其是那种带有国资性质的上市企业App,他们在这方面会更加注重,例如芒果TV、B站、爱奇艺等等。2、隐私协议的撰写,包括格式等等,同样可以参考上面第一条,因为他们有专门的法务部门,作为一个初创企业,没有能力专门去找一个法务来审稿的。3、隐私协议弹窗,这个地方是一个很微妙的地方;他包括弹的时机,弹

2021-10-22 21:28:50 652

原创 业务稳定性优化之业务数据安全

业务数据安全是一个很大的命题,今天将通过工作过程中遇到的一些问题以及解决它的一些经验来阐述他。业务数据安全,顾名思义,就是保证数据的安全性,防止他人盗用我们的数据作为他用。业务数据包括App本地文件数据,传输数据,数据库数据;本地文件数据(不敏感的数据):客户端因业务需求在本地存储数据,在我们设计代码的时候建议该存储的数据的是 不敏感的,毕竟客户端是装在客户的手机上,存在不可控的风险比较大;但是有些人说我就是有些敏感数据需要存在本地咋办,那么此时建议是将该数据进行加密处理,并且加密的逻辑都需要在普通

2021-10-22 21:27:34 232

原创 业务稳定性优化之业务信息安全问题

今天我们说一说我们在业务发展过程中遇到的信息安全的问题。常说“打铁须自身硬”,在业务的时候,须有一定的前瞻性,而不是等到问题来了就补这个漏洞,信息安全问题也是一样的,要时刻保持着信息安全意识。业务信息安全问题,包括提供给内部员工的信息安全,平台信息安全,用户使用产品时信息安全等。内部使用的信息此类信息主要是通过后台管理系统呈现,主要给公司内部员工使用,例如审核人员、客服、运营等,针对此场景我们可以从以下几点着手:不同角色的员工看到的数据不同,后台管理系统进行权限划分。后台管理系统不得提供任

2021-10-22 21:24:55 148

原创 App稳定性之应用分身

今天上午工作过程中,我们的审核同事发了一段视频,是一个用户通过“多开分身”这样子的软件将我们的App的多开高达5个分身,当时我第一个感觉这啥样的用户啊,后面就把如何防止用户多开提上了日程。在Android设备中,当前很流行应用分身,市面上也冒出了很多分身软件,例如360的分身大师,LBE平行空间,以DroidPlugin插件运行的产品;虽然它给我们带来很多便利,但是对于业务来说却带来很多麻烦,例如营销号产生的不合规的内容。1)   数据安全隐患风险:所有的分身双开应用数据,都通过

2021-10-19 21:31:42 1879

原创 怎么回事,又被攻击?

做业务的人,或多或少都会遇到网络攻击情况,团队再小,也是别人的眼中钉肉中刺。业务被无端攻击,它的目的何在?网络攻击的目的:竞争对手让我们的业务瘫痪用户发泄行为敲诈(收保护费)…它的目的有很多,人家想要搞你,从来不会想什么理由的。目前业务中遇到最多的攻击也许是cc攻击和ddos攻击了。cc主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库压力就越大,被访问的频率也越高,占用的系统资源也

2021-10-19 21:31:15 87

原创 Android热修复方案浅析

热修复就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能, 避免长时间的审核等待以及多次被拒造成的成本,达到及时解决问题和发布功能的目的。一. 实现方案目前热修复的实现套路基本上离不开以下两种:实现方案描述代表底层替换方案底层替换方案限制颇多,但时效性最好,加载轻快,立即见效阿里系的AndFix、Sophix类加载方案类加载方案时效性差,需要重新冷启动才能见效,但修复范围广,限制少QZone超级补丁、微信Tinker二. 方案对.

2021-10-19 21:30:03 260

原创 Android性能优化—耗电优化

作为移动设备,电池重要性不言而喻。怎么耗电通过上图可以知道,用户通过软件调用硬件资源而产生了耗电,那么我们可以控制软件调用硬件的频次以此达到降低耗电的目的。那么我们有哪些硬件是可以控制的呢?移动设备元件耗电大户下面我就挑几个常用的元器件聊一聊一、视频、音频、收音机在使用这些功能的使用时候,他牵涉的不单单一个元器件的问题,而是更多,所以我们在使用这些功能的时候要做到离开即刻关闭释放。早期做直播的时候,朋友问我为啥打开直播看了半小时就手机发烫呢,如果你的应用也出现此种情况,就要赶快检测以下几点了:

2021-10-19 21:25:58 2958

原创 App业务数据统计

App业务数据统计包括:展示、点击、新增、日活、异常等目前用的比较多的是ELK——开源实时日志分析ELK平台由ElasticSearch、Logstash和Kiabana三个开源工具组成。我们在做收集数据的时候包括基本的元数据有:1、设备号2、厂商3、ip4、地区5、设备系统版本6、应用版本7、应用渠道8、设备独立ID9、平台(android\ios)10、事件ID\事件名称11、事件值12、网络(2G\3G\4G\5G\wifi)数据收集的目的是对用户在使用业务的时候对产品.

2021-10-19 21:18:04 494

原创 Android性能优化—MAT之OQL详解(三)

OQL是Object Query Language的简写,即对象查询语言,OQL语法和关系型标准查询语言SQL的语法相似,只是增加了比如对象标识、复杂对象、操作、继承、多态性以及联系。SELECT1.SELECT * FROM java.lang.String2.SELECT toString(s), s.count, s.value FROM java.lang.String s (@为属性访问器,可以使用AS起个别名)3.SELECT AS RETAINED SET * FROM java.la

2021-10-19 21:04:22 409

原创 Android性能优化—内存分析工具MAT的使用(二)

我们通过Android性能优化—内存分析工具MAT的使用(一)大概了解了Android到MAT的转换过程。现在我们熟悉下MAT 中常规的使用。如图所示:Mat工具栏中有诸多功能,在我们平时使用过程中,基本上是使用红色框框那些个功能了:①Overview ②Histogram ③Dorminator Tree ④Object Query LanguageOverview用MAT打开一个hprof文件后会进入如下的overview界面,或者和这个界面类似的leak suspect界面,overview

2021-10-19 21:03:52 389

原创 Android性能优化—内存分析工具MAT的使用(一)

准备1、下载及安装Android SDK2、下载及安装MAT(http://www.eclipse.org/mat/)使用流程(windows平台)收集hprof文件1、在{ANDROID_HOME}\tools目下双击monitor.bat,打开DDMS界面,如图:2、选择要操作进程,如图:3、点击一下红色圈圈的按钮(在点击前,可以先点击下它右边的GC按钮),弹出如图:4、将hprof文件保存到指定的文件夹。转换hprof文件通过DDMS得来的hrpof文件,用MAT软件是打不开

2021-10-19 21:02:25 582

原创 Android性能优化—TraceView的使用

概述TraceView是Android平台配备一个很好的性能分析工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到方法。如何使用通过Android studio自带的traceview查看(Android profiler)。通过Android SDK自带的Debug。通过DDMS中的traceview查看。通过Android studio自带的traceview查看通过Android studio 打开Android profiler 点击其中的CPU就会有以下的

2021-10-19 21:01:50 1266

原创 Android性能优化—线程管理

什么是线程线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元,

2021-10-19 21:00:06 404

原创 讲讲ArrayList

在之前《Java中的Collection》文章中简单粗略的介绍了Java中Collection前世今生及常用的Collection,这篇文章我们就单独聊聊ArrayList—一个Java开发者开发过程中绕不开的数据结构。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,

2017-05-26 22:15:35 258

原创 Java中的Collection

简单说明Java中的集合类包括Collection和Map两大分支,这篇文章简单的描述下我们在写代码过程中常用的Collection。从上图可以知道,Collection派生了三大子分支,分别是Set、List、Queue。这三个分支的区别如下: 1、List:必须保持元素特定的顺序 2、Set:不能有重复元素 3、Queue:保持一个队列(先进先出)的顺序层次关系Iterable由上图

2017-05-16 23:03:16 402

原创 说说String

String它是一个引用数据类型,不是一个基础数据类型。 先思考一个问题:String为什么是不可更改的。 查看String类的签名如下: public final class String implements java.io.Serializable, Comparable<String>, CharSequence {} 然后再看看String到底是怎么存储字符串的: /*

2017-04-26 13:49:39 280

原创 Java的四种对象引用类型

Java的四种对象引用类型:强引用、弱引用、软引用、虚引用。强引用(StrongReference):强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。软引用(SoftReference):如果一个对象只具有软引用,则内存空间足够

2017-04-12 22:16:36 426

原创 Java的数据类型

Java的数据类型包含基础数据类型、引用数据类型两大类。 一、四大类八个基础数据类型Java语言提供了八种基本类型。四种数字类型(四个整数型(默认是int 型),两个浮点型(默认是double 型)),一种字符类型,还有一种布尔型。1、byte:byte数据类型是8位、有符号的,以二进制补码表示的整数,占1字节。取值区间-128(-2^7)~127(2^7-1)),默认值是0,对应的Java引用类

2017-03-29 22:56:08 315

原创 写在Java的前面——Java简介

本文主要介绍了Java的三大体系、主要特性、如何配置Java环境、运行第一个Java程序

2017-03-27 22:23:38 277

原创 我工作的第一个五年

2011年中,我从一个三流的学校毕业,学的是信息管理与信息系统专业。刚入学校的时候,听师兄师姐们讲我们这专业其实就是一个做网管的,只要掌握一个技能就OK了,那就是关机重启,当然我也没能成为一名网管。毕业也有六年了,但是这篇文章仅记录我工作的第一个五年 毕业后,我就职于一家知名通讯设备公司的子公司做Java开发。当时是以java EE的名义入职的,参与的是一个SP项目,也许命运使然,就这么没有任何A

2017-03-25 22:36:45 460

空空如也

空空如也

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

TA关注的人

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