架构
文章平均质量分 89
博艺
这个作者很懒,什么都没留下…
展开
-
加固调研实录
背景问题:Appsealing1、启动速度慢 :原 1s左右 ,加固后 3-4 s, 慢 2-3 s目标:保证安全的前提下,启动时间变快,兼容性变好。问题分析:为什么慢——> Dex 加壳, 整体加固,启动慢,兼容问题#1、AppsealingSelect Dex 部分Class加固【作用不显著】Appsealing 研究中,有时间反馈#2、是否有替代技术,加固技术分析。VMP和JAVA2c 技术 #不加固混淆,自己些混淆策略...原创 2021-11-12 15:55:42 · 2198 阅读 · 0 评论 -
静态和动态代理模式
代理模式,也称委托模式,是结构型设计模式之一,何为代理呢? 在日常生活中就比如叫朋友替你拿个快递,叫朋友替你做一下作业,叫朋友替你买点东西等等,这个朋友就是你的代理,你把事情委托你的朋友做了,同样在代码的世界中也存在代理,而且在你以后阅读到更多的设计模式时,你会发现很多的设计模式中也有代理模式的影子,代理模式是一个非常重要的设计模式,代理模式分为静态代理和动态代理,本文将会通过一个简单的例子讲解静态代理,然后引出动态代理,并且深入的探讨一下动态代理的实现原理。代理模式的定义为其他对象提供一种代理以控原创 2021-05-24 10:59:23 · 309 阅读 · 1 评论 -
墨菲定律(设计系统)和康威定律(系统划分)
在设计系统时,应该多考虑 墨菲定律:任何事物都没有表面看起来那么简单。 所有的事都会比你预计的时间长。 可能出错的事总会出错。 如果你担心某种情况发生,那么他就更有可能发生。在划分系统时,应该多考虑 康威定律:系统架构是公司组织架构的反映。 应该按照业务闭环进行系统拆分/组织架构划分,实现闭环/高内聚/低耦合,减少沟通成本。 如果沟通出现问题,那么应该考虑进行系统和组织架...原创 2020-05-06 16:06:37 · 185 阅读 · 0 评论 -
团队项目的Git分支管理规范
团队项目Git分支管理规范:分支管理创建项目时(一般是服务型项目,工具型或辅助型项目可以简单一些),会针对不同环境创建三个常设分支:develop:开发环境的稳定分支,公共开发环境基于该分支构建。 pre-release:测试环境的稳定分支,测试环境基于该分支构建。 master:生产环境的稳定分支,生产环境基于该分支构建。仅用来发布新版本,除了从pre-release或生产环境B...原创 2020-02-17 13:21:46 · 244 阅读 · 0 评论 -
Android SDK 开发的一些个人心得
对 SDK 开发的看法SDK 开发和 APP 开发的区别还是很大的。APP 更倾向于用户体验、功能更偏于特定业务、讲究的是快速迭代、快速占领市场。而 SDK 是为 APP 服务的,提供的大多是公共基础服务,如网络请求、打点统计、帐号服务等。下面从几个点说说我的看法。体积和功能可以用三个字形容:小而精。小是指包的体积要尽可能的小,因为业务方接入的时候可能会有这样的抱怨:怎么接了你们的 S...原创 2019-11-20 11:29:49 · 1011 阅读 · 0 评论 -
还在收集资料?我这里有个github汇总
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。国内程序员都喜欢收集资料,但是又不看,github是重灾区。更有莫名其妙fork的,让人不得要领。这些资料其实也代表了收集者的一个思路,还是有不小参考价值的。这里,我整理了一下java后端的一些资料,算是送给大家的福利吧。收集了不看,也无所谓了(排名不分先后)。如何贡献?我把这些信息放在了github上,做...转载 2019-11-12 16:38:54 · 206 阅读 · 0 评论 -
关于4G网络ip变动
1、重新发起接入,ip会改变重新发起接入,ip会发生改变,ip分配完成应该是在接入之后,dhcp自动分配的;重新发起接入过程,可能是开机重启,飞行模式切换,没有信号到有信号2、同一个区域内切换基站 ip不会改变4g保证了基站间无缝切换,也就是切换基站的过程,只要是在切换的过程中没有断网(4g链路,并不是数据开关),即没重新发起随机接入,ip就还是那个ip;3、从一个区域到另一个区...原创 2019-07-19 14:34:36 · 7172 阅读 · 0 评论 -
JavaWeb项目前后分离的原因
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。核心思想是前端html页面通过ajax调用后端的restuful ap...转载 2019-02-18 11:42:21 · 772 阅读 · 1 评论 -
Android官方技术文档翻译——清单合并
本文译自Android官方技术文档《Manifest Merger》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger。翻译不易,转载请注明CSDN博客上的出处:http://blog.csdn.net/maosidiaoxian/article/details/42671...翻译 2018-10-18 10:31:32 · 973 阅读 · 0 评论 -
Android Gradle新增buildtypes的坑
添加buildTypes有时候会要求多添加一种buildType,比如预发版、beta版,正式版这样的需求 我们就直接在buidtypes里面增加 buildTypes { release { signingConfig signingConfigs.release minifyEnabled true// ...原创 2018-08-02 10:26:43 · 6326 阅读 · 3 评论 -
Android组件化方案
版权声明:本文为博主原创文章,欢迎大家转载! 转载请标明出处: http://blog.csdn.net/guiying712/article/details/55213884 ,本文出自:【张华洋的博客】Android组件化项目地址:Android组件化项目AndroidModulePatternAndroid组件化之终极方案地址:http://blog.csdn.net/guiying712/...转载 2018-06-20 12:29:17 · 209 阅读 · 0 评论 -
Android新架构组件WorkManager
注:原文地址 5月8号, I/O大会上又推出了两个新的Architeture Component库: Navigation与 WorkManager. 这里就先介绍一下 WorkManager。WorkManager简介其实就是”管理一些要在后台工作的任务, – 即使你的应用没启动也能保证任务能被执行”。1. 为何不用JobScheduler, AlarmManger来做?其实这个想法很对. Wo...转载 2018-05-24 17:32:05 · 1579 阅读 · 0 评论 -
HtmlSpanner 使用笔记
基本的使用方法很简单,使用 new HtmlSpanner().fromHtml(content);// content是html源代码 注意,fromHtml方法不能够在主线程中调用.其他一些功能 1.能够获取标签属性和自定义标签属性,使用工具,HtmlCleaner,这个工具网上资料比较多。 2.handlers,HtmlSpanner提供了很多Handlers用于对不同标签进行处理。 3.s...原创 2018-04-20 08:42:40 · 1899 阅读 · 1 评论 -
项目网络层重构
引入网络抽象层,主要包括以下部分:Request: 通用的Request的实现结构,承载如下职责: 网络请求信息的承载和封装。为Interceptor提供切面回调。为第三方库的Request**具体实现提供桥接接口。**Sender: 对网络请求发送的抽象,为第三方库的发送请求(以及一些请求控制方法)提供实现接口。Interceptor: AOP,对Request的各项回调进行intercept,...原创 2018-04-20 08:39:56 · 143 阅读 · 0 评论 -
Oauth2.0(二)
Oauth2.0(二):开放平台 上一节说到Oauth2.0 的交互模型。模型涉及到三方:资源拥有者、客户端、服务提供方。其中,服务提供方包含两个角色:鉴权服务器和资源服务器。鉴权服务器负责对用户进行认证,并授权给客户端权限。认证这一步好实现,无非就是验一下账号密码。但是授权这一步怎么做?可以看到在QQ的授权页面上,有”有道云笔记将获得以下权限“的字样以及权限信息。鉴权服务器需要知道请求授权的客...原创 2018-04-11 15:56:48 · 622 阅读 · 0 评论 -
retrofit+Rxjava取得状态码非200(出现错误)时的response里的body
一个典型的retrofit+Rxjava的网络请求如下Subscription subscription = videoChartService.login(newBody) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(application.defaultSubsc...原创 2018-04-17 08:22:46 · 1388 阅读 · 0 评论 -
Oauth2.0 协议详解(-)
Oauth2.0(一):为什么需要 Oauth2.0 协议? 假设有两家互联网企业 A 和 B,其中 B 是一家提供相片云存储的公司。即 B 的用户可以把相片上传到 B 网站上长期保存,然后可以在不同的设备上查看。某一天,A 和 B 谈成了一项合作:希望 B 用户在使用 A 的客户端时,也可以观看他在 B 的相片。假设你是技术负责人,需要出一个实现方案,怎么做?http://www.cnblog...原创 2018-04-11 13:31:19 · 192 阅读 · 0 评论 -
Android Studio 中获取SHA1和MD5(应用签名)
Android Studio 中获取SHA1和MD5(应用签名)根据keystore文件获取1.打开android studio以后,找到自带的Terminal,输入 keytool -v -list -keystore keystore的路径例如:keytool -v -list -keystore d:\debug.keystore(注:一定要记得加上 -v 参数,不然只能看到SHA1,没有M...原创 2018-04-11 09:53:40 · 354 阅读 · 0 评论 -
理解本真的REST架构风格
引子在移动互联网、云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过“REST”这个buzzword,显然已经落伍了。夸张点说,甚至“出了门都不好意思跟别人打招呼”。尽管如此,对于REST这个泊来品的理解,大多数人(包括一些资深的架构师)仍然停留在“盲人摸象”的阶段。常常听到各种各样关于REST的说法,例如:有人说:“我们这套新的API决定不用Web Service(SOAP+WSDL)...原创 2018-03-31 17:13:32 · 208 阅读 · 0 评论