自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 APP安全(一)-防二次打包(C、C++签名校验)

前言由于Android系统的开放性,开发出来的APP很容易被逆向,修改代码逻、加入广告、病毒等二次打包后发布,对开发者和用户造成一定的损失。因此我们的APP运行过程中需要进行签名校验,以及使用加解密算法对数据进行处理,从而保证访问服务端的请求是我们信任的APK。签名校验如果放在Java语言层面,很容易被逆向,因此需要在C/C++层进行校验,从而增加破解的难度。校验逻辑APP启动时候初始化我...

2020-01-20 00:16:24 1855

原创 JVM运行时数据区域

概述Java将内存控制的权力交给Java虚拟机,它自动帮我们分配内存和释放内存。不像C、C++开发语言,需要程序员为每个new对象去写配对的delete/free代码。一旦JVM中出现了内存泄漏和内存溢出,如果不了解JVM如何使用内存,那么对排查错误将是一项异常艰难的工作。同时无限制或者不合理的new一些对象,会出现一些内存抖动,因而影响体验和性能。因此了解JVM的内存分配机制,有助于写出高性能...

2019-12-30 23:51:35 138

原创 通过阅读EventBus源码,可以学习的一些知识点

前言随着技术的发展,各种开源的工具原来越多,在项目开发阶段,我们很多时候都是直接将开源的库拿过来直接使用,慢慢的就变成了轮子的使用者,技术的提升也就变得缓慢了。因此在使用开源库的过程中,我们都有必要去熟悉库的源码,了解作者的设计思想以及用到哪些技术,并将这些技术进行提炼,为自己后期有机会创造轮子打下基础。EventBus作为我们项目中常用的开源库,在这里提炼了一下这个库中自己觉得有必要了解的知...

2019-09-19 23:20:07 240

原创 EvenBus的正确使用姿势-index

前言最近在学习商学院的一些知识,有一些学习心得,在这里分享给大家。我在看一篇博客或者一些书籍的时候,都会按照下面的模式进行学习:讲什么(作者需要讲了什么)如何讲明白(作者通过什么样的方式讲明白自己的观点)如何运用(实际应用场景)拓展思考(结合自己的理解,进行发散性思考)这样在学习的过程中有思考,有总结;更能抓住重点和提升学习效率。eventBusIndex的性能提升在没有使用E...

2019-09-19 00:32:16 522

原创 App被逆向,修改了其中的会员权限怎么办?

前言最近公司的APP被逆向了,修改了其中的会员判断逻辑,并且还增加了广告,对公司带来了一定的影响和损失。特别是会员这块,修改了以后,让非会员用户也享受了会员的权益,影响了公司的收益,后果大家知道的…。所以说一个好的产品在架构设计的时候就应该考虑到各种情况。如何解决方案一 app加固加固是一个快速的方案,用一些高级的第三方加固方案,常用的360加固保,收费从18000元/年-72000元/...

2019-09-01 21:16:20 2688

原创 volatile不会用,怎么办?

前言volatile是java虚拟机提供的一个轻量级的同步机制,大多数情况下比锁的开销更低,因此在合适的条件下我们有必要使用它。但是要使用他,我们必须对他的具体作用,使用场景,使用限制进行透彻的了解。才能避免在开发中误用带来的不安全问题。作用变量修饰符,保证变量的可见性以及禁止指令重排优化。下面将对可见性和指令重排做详细的介绍,从而更好的认清他的作用。可见性指当一个线程修改了这个变量的值...

2019-09-01 20:21:27 221

原创 Android架构组件-WorkMannager

前言WorkManager作为谷歌推出的架构组件之一,相比其他的组件,应用场景要少一些,不是每个APP都需要的。但是如果有后台任务需要执行,那么,它是一个不错的选择。WorkManager是什么WorkManager是一个针对后台任务处理的方案,无论在应用或设备重启的情况下都能可靠地帮助您的应该管理和执行延迟的后台任务,同时能兼容到Android 4.0以及以后的版本,能减轻适配工作。我们知...

2019-07-17 23:53:28 541

原创 Android架构组件-ViewModel

前言在使用一个新的组件之前,我们需要了解为什么需要使用它、如何使用、使用过程中的注意事项、可扩展或可提升的地方。当我们深入透彻理解这些后,开发中遇到任何问题都可以迎刃而解。当然需要了解这些内容,我们必须熟悉源码的实现过程,这样才能做到心中有数。为什么需要使用概念ViewModel主要是为了保存和管理UI相关的数据,能够在我们的配置发生变化的时候保存数据,比如在屏幕旋转时,可以直接使用上次保...

2019-07-03 23:51:07 883

原创 Android架构组件-LiveData实现原理分析

前言在使用一个新的组件之前,我们需要了解为什么需要使用它、如何使用、使用过程中的注意事项、可扩展或可提升的地方。当我们深入透彻理解这些后,开发中遇到任何问题都可以迎刃而解。当然需要了解这些内容,我们必须熟悉源码的实现过程,这样才能做到心中有数。为什么需要使用LiveDataLiveData 是一种可观察的数据存储器。应用中的其他组件可以使用此存储器监控对象的更改,而无需在它们之间创建明确且严...

2019-06-20 00:21:44 549

原创 Android 架构组件-Lifecycle

前言在使用一个新的组件之前,我们需要了解为什么需要使用它、如何使用、使用过程中的注意事项、可扩展或可提升的地方。当我们深入透彻理解这些后,开发中遇到任何问题都可以迎刃而解。当然需要了解这些内容,我们必须熟悉源码的实现过程,这样才能做到心中有数。为什么需要使用Lifecycle从APP的开发过程历程来讲,没有Lifecycle这个组件,我们的APP一样开发,一样好好的运行,从这个层面来讲,是可...

2019-06-20 00:19:35 302

原创 EOS合约开发3-投票合约部署到测试网络

前言结合项目的开发周期和测试需求,我们开发的合约在本地环境测试好后,同时需要在测试网络上进行测试,保证测试没有问题后切换到主网。接下来介绍如何将合约部署到测试网络上进行测试操作流程获取免费账户的地址:http://faucet.cryptokylin.io/create_account?new_account_name注意:new_account_name 为小写a-z,1-5,’.'...

2018-11-21 15:12:53 542

原创 EOS合约开发2-投票合约开发

前言合约是DAPP的基础,因此在开发DAPP之前,我们需要明白我们的项目是否需要去中心话以及哪些数据需要去中心化,目前的公链还不支持所有的资源都去中心话,这样才能更好的设计我们的项目和合约。接下来将以去中心话的投票系统为例来讲解合约的开发、部署、测试。合约是什么合约是一种协议,我们制定好规则后,合约自动执行。EOSIO智能合约是在区块链上注册并在节点上执行的软件,相关的操作会记录在区块链的...

2018-10-24 18:03:02 578 2

原创 EOS合约开发1-开发环境搭建

前言EOS目前的学习资料可以参考官方门户:https://developers.eos.io/ ,在环境搭建或者开发中遇到其他问题是尽量去github 上的 Issues寻找答案。开发环境搭建以下示例基于MacOS 10.13.4上测试1.下载代码git clone https://github.com/EOSIO/eos --recursive2.运行构建脚本cd eos./e...

2018-10-24 17:14:48 368

原创 Android Webview https 证书问题及混淆打包后不能访问

前言随着人们对安全意识的提高,越来越多的产品都采用HTTPS的方式提供服务。然而在我们的移动产品开发过程中,或多或少的都会去使用Webview去加载部分功能,特别是现在区块链的潮流下,为了减少开发成本,加快开发速度,我们的DApp应用大多都是采用h5进行开发。现在购买证书的渠道很多,但我们系统内置的根证书却有限,特别是Android系统的证书就比IOS的要少,很多的应用在IOS上能够打开,...

2018-05-31 18:09:55 2248 1

原创 Broadcast和BroadcastReciver的安全使用

在程序内,使用 LocalBroadcastManager来高效、安全的管理广播

2017-08-14 16:54:12 682

原创 Android数据本地安全存储

前言  在Android都开发中,通常我们都会在本地存储一些数据,如果我们不对这些数据进行加密存储,很容易将一些敏感数据暴露给黑客,从而给我们的产品带来一些影响。   这里使用AES算法来加解密数据,在使用AES算法中,最主要的就是key的生成,如果我们直接硬编码在程序,程序被反编译后也很容易看到。那么如果保证key的安全以及在不同的手机上使用不同的key呢?这篇文章结合项目中的使用经验,分享ke

2017-04-24 21:59:18 3113

原创 Hybrid开发Native和JS端交互特殊字符处理

前言  首先定义定义一段Nativie和Js交互的JS,如String js = "test('test')" Hybird开发中Nativie和Js交互方式在4.4以下通过webview.loadUrl("javascript:"+js)或者4.4以下通过webview.evaluateJavascript(js, valueCallback)进行交互,如果我们的js内容简单,没有特殊字符,比如

2017-03-31 22:47:30 759

原创 RSA加解密及签名使用介绍

RSA概要介绍1976年以前,所有的加密方法都是同一种模式:甲方选择某一种加密规则,对信息进行加密;乙方使用同一种规则,对信息进行解密由于加密和解密使用同样的规则(简称“秘钥”),这种被称为“对称加密算法”。这种加密模式有个最大的弱点:甲方必须把加密规则告诉乙方,否则无法解密。保存和传递秘钥成了最头疼的问题。1976年,两位美国计算机科学家Whitfield Diffie和Martin Hel

2016-01-26 22:09:57 8502

原创 Volley中RequestQueue对request的add优化处理

前言使用过Volley的开发者应该很清楚,对于一个request只需要将它加入对Queue中即可,使用也非常简单,也许没有注意它的细节,看了下面的这个对request添加优化处理后,我们将明白Volley框架在一些细节方面做得很好,这种做事的态度值得我们学习。代码分析下面从代码中分析Volley的add request的处理方式,首先要了解一个变量://重复请求的暂存区域,存储相同cachekey的

2016-01-12 21:15:16 650

原创 Volley字节换冲池的使用_ByteArrayPool

原理:当需要使用byte[]的时候从缓冲池中获取,如果没有合适的大小,则根据指定大小创建一个新的byte[],使用完成后可在mSizeLimit的限制下缓存到缓冲池中;目的:我们知道在gc的过程中可能会阻塞主线程,因此尽量避免产生大量的堆信息从而减少gc操作,对我们app的性能改善是很有帮助的;那么使用缓冲池的目的是为了解决在byte[]的创建中产生大量的堆信息以及在gc过程中的延迟,从而改善app

2016-01-04 22:08:22 864

原创 Volley超时重试策略_RetryPolicy

基础知识要弄明白超时重试策略首先明白两个异常信息:java.net.SocketTimeoutExceptionThis exception is thrown when a timeout expired on a socket read or accept operation.当读取一个socket或者接受操作超时会抛出该异常,通俗讲就是响应超时。org.apache.http.conn.

2015-12-29 22:15:04 3631

原创 Volley缓存-服务端实现_Java

服务端的控制这里只是简单的写了个示列,展示怎么使用,在项目开发中需要根据实际情况进行控制。下面展现所使用到的代码: CacheServlet/** * Servlet implementation class CacheServlet */@WebServlet("/CacheServlet")public class CacheServlet extends HttpServlet {

2015-12-28 22:48:09 532

原创 Volley缓存-原理介绍

本文将从以下方面介绍Volley的缓存机制 使用缓带来哪些优势Volley的缓存原理 Volley对服务端header解析 Volley缓存过期判断 使用缓带来哪些优势:速度:已缓存的资源加载的更快;减少服务器负载:不用每次都和服务器进行交互; 较少网络流量:对于已缓存且在有效期内的数据将不会再次向服务器请求,如果已过期,只需要判断返回的数据是否发生变化,没有变化返回304,告诉客户

2015-12-28 16:16:07 884

基于openssl的MD5实现

基于openssl和ndk,实现c++版MD5及位运算生成一个32位的字符串;该模块是一个集成了openssl静态库的资源,下载后可直接运行。

2017-08-30

openssl工具

Window环境下使用该工具生成RSA公钥和私钥

2016-01-25

空空如也

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

TA关注的人

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