<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[码农时代]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/roughCode</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; roughCode]]></copyright><item><title><![CDATA[做业务的程序猿如何提升技能？]]></title><link>https://blog.csdn.net/roughCode/article/details/121049670</link><guid>https://blog.csdn.net/roughCode/article/details/121049670</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 13:16:37 +0800</pubDate><description><![CDATA[每个程序猿都逃脱不了那个做业务的阶段，或多或少有些难以忘怀的记忆吧。
现状
天天被需求追着跑、被各路人马轮番“喷”、参加各种会议是我们做业务人多日常常态，然后晚上加班做各种需求，还要按各种批，真是身心俱惫。对于我们来说，难道就这样子了么？当然不是，我们也要进步。
如何提升自己
1、学习业务
既然我们是做业务的，我们就需要利用我们的优势，理清业务的基本逻辑，指出改业务的难点在哪里，是否有更好的路径去提高业务场景所带来的效益（日活、收入等），不要把自己当成工具人，而是当成局中人，思考是最重要的。哪怕以后不在公司]]></description><category></category></item><item><title><![CDATA[Android性能优化-Apk瘦身（3）]]></title><link>https://blog.csdn.net/roughCode/article/details/121049638</link><guid>https://blog.csdn.net/roughCode/article/details/121049638</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 13:13:52 +0800</pubDate><description><![CDATA[接Android性能优化-Apk瘦身（1）Android性能优化-Apk瘦身（2），今天我们说些总结。
上述两文，我们述说了Apk瘦身从哪些方面入手，哪些地方值得我们去发现问题以及解决问题，这篇文章我们总结下常规性操作，包括grade打包配置。
1、资源文件优化
a、项目中可选择对主流的dpi支持，例如我们项目目前选择xxhdpi作为对标，对于大图片，可以通过网络加载方式执行。
defaultConfig {
resConfigs "zh" //表示只使用中文
resConfigs "xxhdpi" // ]]></description><category></category></item><item><title><![CDATA[Android性能优化-Apk瘦身（2）]]></title><link>https://blog.csdn.net/roughCode/article/details/121049392</link><guid>https://blog.csdn.net/roughCode/article/details/121049392</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 13:08:43 +0800</pubDate><description><![CDATA[今天我们接上篇Android性能优化-Apk瘦身（1），聊一聊res资源文件的优化。
1、res资源文件优化
随着我们项目功能越来越多，越来越负责，迭代也越来越多，项目中使用的资源文件也越来越多，也越来越复杂。
a、删除无用的资源文件

我们在Android studio中点击Refactor-&gt;Remove Unused Resources，
此时出现

这种方式我们是工具觉得这些资源无用的，我们需要有自己的辩证，那些资源能删除，那些资源不能删除，不能删除的需要把还原。
b、当然我们也可以先查看那些]]></description><category></category></item><item><title><![CDATA[Android性能优化-Apk瘦身（1）]]></title><link>https://blog.csdn.net/roughCode/article/details/121049285</link><guid>https://blog.csdn.net/roughCode/article/details/121049285</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 12:33:37 +0800</pubDate><description><![CDATA[接下来我们会聊一聊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，但目前各大应用市场]]></description><category></category></item><item><title><![CDATA[Android性能页优化-启动页优化]]></title><link>https://blog.csdn.net/roughCode/article/details/121049243</link><guid>https://blog.csdn.net/roughCode/article/details/121049243</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 12:28:59 +0800</pubDate><description><![CDATA[这些天跟聊了下启动页优化问题，这是一个老生常谈的问题了。
1、App启动方式：
a、冷启动；应用被杀死，后台没有对应的进程的启动
b、热启动；后台有应用进程的启动
我们需要启动页优化，主要也是针对冷启动时候优化。
在冷启动过程中我们应用是这样子执行的：

由以上图我们可以知道，如果我们要优化启动速度点话，重点要把主线程在Application、启动Acitivity上的耗时减少以此达到优化目的。
2、启动时白屏和黑屏
设置启动Activity的theme的style包含windowBackground，他将]]></description><category></category></item><item><title><![CDATA[Android性能优化—网络优化]]></title><link>https://blog.csdn.net/roughCode/article/details/121049183</link><guid>https://blog.csdn.net/roughCode/article/details/121049183</guid><author>roughCode</author><pubDate>Sat, 30 Oct 2021 12:25:37 +0800</pubDate><description><![CDATA[网络优化是一个比较大的命题，今天聊一聊在我们业务使用中必要的优化点。

网络请求的划分

网络优化按照业务区分可以分为日志收集、业务请求；按请求的优先级划分可以分为高优先级、中优先级、低优先级；按请求的重要性又可以划分为非常重要、重要、一般、可抛弃；按照请求频次又可以划分为高频次、一般频次、低频词。例如我们的日志收集就属于低优先级、高频次并且可抛弃的网络场景，对于这种网络场景，我们可以采取独立的线程池且不需要任何网络重试操作方案；我们可以针对网络应用场景的优先级、重要性、频次等来决定该场景应该采用怎么样的网]]></description><category></category></item><item><title><![CDATA[业务如何应对App隐私政策带来的风险]]></title><link>https://blog.csdn.net/roughCode/article/details/120913739</link><guid>https://blog.csdn.net/roughCode/article/details/120913739</guid><author>roughCode</author><pubDate>Fri, 22 Oct 2021 21:28:50 +0800</pubDate><description><![CDATA[今年应用市场对于App隐私政策方面有很多要求，抓得也特别严格，一个不小心就来个通知警告，来个下架，日子不好过…
基于此，下面就聊聊我们如何应对这相关政策：
1，看大厂的App如何做的，我们可以模仿他们的做法来搞，尤其是那种带有国资性质的上市企业App，他们在这方面会更加注重，例如芒果TV、B站、爱奇艺等等。
2、隐私协议的撰写，包括格式等等，同样可以参考上面第一条，因为他们有专门的法务部门，作为一个初创企业，没有能力专门去找一个法务来审稿的。
3、隐私协议弹窗，这个地方是一个很微妙的地方；他包括弹的时机，弹]]></description><category></category></item><item><title><![CDATA[业务稳定性优化之业务数据安全]]></title><link>https://blog.csdn.net/roughCode/article/details/120913713</link><guid>https://blog.csdn.net/roughCode/article/details/120913713</guid><author>roughCode</author><pubDate>Fri, 22 Oct 2021 21:27:34 +0800</pubDate><description><![CDATA[业务数据安全是一个很大的命题，今天将通过工作过程中遇到的一些问题以及解决它的一些经验来阐述他。
业务数据安全，顾名思义，就是保证数据的安全性，防止他人盗用我们的数据作为他用。
业务数据包括App本地文件数据，传输数据，数据库数据；
本地文件数据（不敏感的数据）：
客户端因业务需求在本地存储数据，在我们设计代码的时候建议该存储的数据的是 不敏感的，毕竟客户端是装在客户的手机上，存在不可控的风险比较大；但是有些人说我就是有些敏感数据需要存在本地咋办，那么此时建议是将该数据进行加密处理，并且加密的逻辑都需要在普通]]></description><category></category></item><item><title><![CDATA[业务稳定性优化之业务信息安全问题]]></title><link>https://blog.csdn.net/roughCode/article/details/120855353</link><guid>https://blog.csdn.net/roughCode/article/details/120855353</guid><author>roughCode</author><pubDate>Fri, 22 Oct 2021 21:24:55 +0800</pubDate><description><![CDATA[今天我们说一说我们在业务发展过程中遇到的信息安全的问题。
常说“打铁须自身硬”，在业务的时候，须有一定的前瞻性，而不是等到问题来了就补这个漏洞，信息安全问题也是一样的，要时刻保持着信息安全意识。业务信息安全问题，包括提供给内部员工的信息安全，平台信息安全，用户使用产品时信息安全等。
内部使用的信息
此类信息主要是通过后台管理系统呈现，主要给公司内部员工使用，例如审核人员、客服、运营等，针对此场景我们可以从以下几点着手：


不同角色的员工看到的数据不同，后台管理系统进行权限划分。


后台管理系统不得提供任]]></description><category></category></item><item><title><![CDATA[App稳定性之应用分身]]></title><link>https://blog.csdn.net/roughCode/article/details/120855331</link><guid>https://blog.csdn.net/roughCode/article/details/120855331</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:31:42 +0800</pubDate><description><![CDATA[今天上午工作过程中，我们的审核同事发了一段视频，是一个用户通过“多开分身”这样子的软件将我们的App的多开高达5个分身，当时我第一个感觉这啥样的用户啊，后面就把如何防止用户多开提上了日程。

在Android设备中，当前很流行应用分身，市面上也冒出了很多分身软件，例如360的分身大师，LBE平行空间，以DroidPlugin插件运行的产品；虽然它给我们带来很多便利，但是对于业务来说却带来很多麻烦，例如营销号产生的不合规的内容。
1)&nbsp; &nbsp;数据安全隐患风险：
所有的分身双开应用数据，都通过]]></description><category></category></item><item><title><![CDATA[怎么回事，又被攻击？]]></title><link>https://blog.csdn.net/roughCode/article/details/120855316</link><guid>https://blog.csdn.net/roughCode/article/details/120855316</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:31:15 +0800</pubDate><description><![CDATA[做业务的人，或多或少都会遇到网络攻击情况，团队再小，也是别人的眼中钉肉中刺。
业务被无端攻击，它的目的何在？网络攻击的目的：

竞争对手让我们的业务瘫痪
用户发泄行为
敲诈(收保护费)
…

它的目的有很多，人家想要搞你，从来不会想什么理由的。
目前业务中遇到最多的攻击也许是cc攻击和ddos攻击了。
cc主要是用来攻击页面的。大家都有这样的经历，就是在访问论坛时，如果这个论坛比较大，访问的人比较多，打开页面的速度会比较慢，访问的人越多，论坛的页面越多，数据库压力就越大，被访问的频率也越高，占用的系统资源也]]></description><category></category></item><item><title><![CDATA[Android热修复方案浅析]]></title><link>https://blog.csdn.net/roughCode/article/details/120855291</link><guid>https://blog.csdn.net/roughCode/article/details/120855291</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:30:03 +0800</pubDate><description><![CDATA[热修复就是动态下发代码，它可以使开发者在不发布新版本的情况下，修复 BUG 和发布功能， 避免长时间的审核等待以及多次被拒造成的成本，达到及时解决问题和发布功能的目的。
一. 实现方案
目前热修复的实现套路基本上离不开以下两种：




实现方案
描述
代表




底层替换方案
底层替换方案限制颇多，但时效性最好，加载轻快，立即见效
阿里系的AndFix、Sophix


类加载方案
类加载方案时效性差，需要重新冷启动才能见效，但修复范围广，限制少
QZone超级补丁、微信Tinker


二. 方案对.]]></description><category></category></item><item><title><![CDATA[Android性能优化—耗电优化]]></title><link>https://blog.csdn.net/roughCode/article/details/120855194</link><guid>https://blog.csdn.net/roughCode/article/details/120855194</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:25:58 +0800</pubDate><description><![CDATA[作为移动设备，电池重要性不言而喻。
怎么耗电
通过上图可以知道，用户通过软件调用硬件资源而产生了耗电，那么我们可以控制软件调用硬件的频次以此达到降低耗电的目的。那么我们有哪些硬件是可以控制的呢？
移动设备元件耗电大户

下面我就挑几个常用的元器件聊一聊
一、视频、音频、收音机
在使用这些功能的使用时候，他牵涉的不单单一个元器件的问题，而是更多，所以我们在使用这些功能的时候要做到离开即刻关闭释放。早期做直播的时候，朋友问我为啥打开直播看了半小时就手机发烫呢，如果你的应用也出现此种情况，就要赶快检测以下几点了：]]></description><category></category></item><item><title><![CDATA[App业务数据统计]]></title><link>https://blog.csdn.net/roughCode/article/details/120854760</link><guid>https://blog.csdn.net/roughCode/article/details/120854760</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:18:04 +0800</pubDate><description><![CDATA[App业务数据统计包括：展示、点击、新增、日活、异常等
目前用的比较多的是ELK——开源实时日志分析ELK平台由ElasticSearch、Logstash和Kiabana三个开源工具组成。
我们在做收集数据的时候包括基本的元数据有：
1、设备号
2、厂商
3、ip
4、地区
5、设备系统版本
6、应用版本
7、应用渠道
8、设备独立ID
9、平台（android\ios）
10、事件ID\事件名称
11、事件值
12、网络（2G\3G\4G\5G\wifi）
数据收集的目的是对用户在使用业务的时候对产品.]]></description><category></category></item><item><title><![CDATA[Android性能优化—MAT之OQL详解（三）]]></title><link>https://blog.csdn.net/roughCode/article/details/120854748</link><guid>https://blog.csdn.net/roughCode/article/details/120854748</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:04:22 +0800</pubDate><description><![CDATA[OQL是Object Query Language的简写，即对象查询语言，OQL语法和关系型标准查询语言SQL的语法相似，只是增加了比如对象标识、复杂对象、操作、继承、多态性以及联系。
SELECT
1.SELECT * FROM java.lang.String
2.SELECT toString(s), s.count, s.value FROM java.lang.String s (@为属性访问器,可以使用AS起个别名)
3.SELECT AS RETAINED SET * FROM java.la]]></description><category></category></item><item><title><![CDATA[Android性能优化—内存分析工具MAT的使用（二）]]></title><link>https://blog.csdn.net/roughCode/article/details/120854704</link><guid>https://blog.csdn.net/roughCode/article/details/120854704</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:03:52 +0800</pubDate><description><![CDATA[我们通过Android性能优化—内存分析工具MAT的使用（一）大概了解了Android到MAT的转换过程。现在我们熟悉下MAT 中常规的使用。

如图所示：Mat工具栏中有诸多功能，在我们平时使用过程中，基本上是使用红色框框那些个功能了：
①Overview ②Histogram ③Dorminator Tree ④Object Query Language
Overview
用MAT打开一个hprof文件后会进入如下的overview界面，或者和这个界面类似的leak suspect界面，overview]]></description><category></category></item><item><title><![CDATA[Android性能优化—内存分析工具MAT的使用（一）]]></title><link>https://blog.csdn.net/roughCode/article/details/120854690</link><guid>https://blog.csdn.net/roughCode/article/details/120854690</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:02:25 +0800</pubDate><description><![CDATA[准备
1、下载及安装Android SDK
2、下载及安装MAT（http://www.eclipse.org/mat/）
使用流程（windows平台）
收集hprof文件
1、在｛ANDROID_HOME｝\tools目下双击monitor.bat，打开DDMS界面，如图：

2、选择要操作进程，如图:

3、点击一下红色圈圈的按钮（在点击前，可以先点击下它右边的GC按钮），弹出如图：

4、将hprof文件保存到指定的文件夹。
转换hprof文件
通过DDMS得来的hrpof文件，用MAT软件是打不开]]></description><category></category></item><item><title><![CDATA[Android性能优化—TraceView的使用]]></title><link>https://blog.csdn.net/roughCode/article/details/120854675</link><guid>https://blog.csdn.net/roughCode/article/details/120854675</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:01:50 +0800</pubDate><description><![CDATA[概述
TraceView是Android平台配备一个很好的性能分析工具，它可以通过图形化的方式让我们了解我们要跟踪的程序的性能，并且能具体到方法。
如何使用

通过Android studio自带的traceview查看（Android profiler）。
通过Android SDK自带的Debug。
通过DDMS中的traceview查看。

通过Android studio自带的traceview查看
通过Android studio 打开Android profiler 点击其中的CPU就会有以下的]]></description><category></category></item><item><title><![CDATA[Android性能优化—线程管理]]></title><link>https://blog.csdn.net/roughCode/article/details/120854417</link><guid>https://blog.csdn.net/roughCode/article/details/120854417</guid><author>roughCode</author><pubDate>Tue, 19 Oct 2021 21:00:06 +0800</pubDate><description><![CDATA[什么是线程
线程，有时被称为轻量级进程，是程序执行流的最小单元。一个标准的线程由线程ID，当前指令指针，寄存器集合和堆栈组成，是进程中的一个实体，是被系统独立调度和分派的基本单位，线程自己不拥有系统资源，只拥有一点儿在运行中必不可少的资源，但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程，同一进程中的多个线程之间可以并发执行。每一个程序都至少有一个线程，若程序只有一个线程，那就是程序本身。
线程是程序中一个单一的顺序控制流程。进程内有一个相对独立的、可调度的执行单元，]]></description><category></category></item><item><title><![CDATA[讲讲ArrayList]]></title><link>https://blog.csdn.net/roughCode/article/details/72774076</link><guid>https://blog.csdn.net/roughCode/article/details/72774076</guid><author>roughCode</author><pubDate>Fri, 26 May 2017 22:15:35 +0800</pubDate><description><![CDATA[在之前《Java中的Collection》文章中简单粗略的介绍了Java中Collection前世今生及常用的Collection，这篇文章我们就单独聊聊ArrayList—一个Java开发者开发过程中绕不开的数据结构。public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess,]]></description><category></category></item></channel></rss>