当前位置: 首页 移动开发

Android资源混淆保护实践

前言Android应用中的APK安全性一直遭人诟病,市面上充斥着各种被破解或者汉化的应用,破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等,这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植入病毒等等,从而破坏原有APK的安全和用户体验,最终伤害到用户和原有的开发者。 而事物都是有两方面的,有矛就有盾,针对Android应用安全的各种方案应运而生,大家比较熟悉一般是各类加壳加固的工具,我们可以使用这些工具来保护我们的APK,加壳加固是另外一个话题

深入理解Objective-C:Category

摘要无论一个类设计的多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了category这个语言特性,可以动态地为已有类添加新行为。如今category已经遍布于Objective-C代码的各个角落,从Apple官方的framework到各个开源框架,从功能繁复的大型APP到简单的应用,catagory无处不在。本文对category做了比较全面的整理,希望对读者有所裨益。简介本文

block在iOS开发中的实践

说到block,相信大部分iOS开发者都会想到retain cycle或是__block修饰的变量。但是本文将忽略这些老生常谈的讨论,而是将重点放在美团iOS在实践中对block的应用,希望能对同行有所助益。本文假设读者对block有一定的了解。从闭包说起在Lisp这样的语言中,有一个概念叫做闭包(closure),指的是一个函数以及它所处的词法作用域(lexical scope)构成的整体。为了理解闭包,我们首先来看看什么是词法作用域。所谓词法作用域,顾名思义,是指一个符号引用的是其词法环境中

Android自动化之旅—适配渠道包

概述前一篇文章(Android自动化之旅—生成渠道包)介绍了Android中几种生成渠道包的方式,基本解决了打包慢的问题。但是,随着渠道越来越多,不同渠道对应用的要求也不尽相同。例如,有的渠道要求美团客户端的应用名为美团,有的渠道要求应用名为美团团购。又比如,有些渠道要求应用不能使用第三方统计工具(如flurry)。总之,每次打包都需要对这些渠道进行适配。之前的做法是为每个需要适配的渠道创建一个Git分支,发版时再切换到相应的分支,并合并主分支的代码。适配的渠道比较少的话这种方式还可以接受,如果

Android自动化之旅—生成渠道包

每当发新版本时,美团团购Android客户端会被分发到各个应用市场,比如豌豆荚,360手机助手等。为了统计这些市场的效果(活跃数,下单数等),需要有一种方法来唯一标识它们。团购客户端目前通过渠道号(channel)来区分不同的市场,代码中使用Config.channel变量记录该渠道号。比如,豌豆荚市场中美团应用的渠道号是wandoujia,360手机助手中美团应用的渠道号为qihu360。客户端访问API时会在请求参数中带上渠道号,以便后台接下来计算不同渠道的效果。每次发版时,市场部会提供一个

Android热更新方案Robust

美团是中国最大的O2O交易平台,目前已拥有近6亿用户,合作各类商户达432万,订单峰值突破1150万单。美团App是平台主要的入口之一,O2O交易场景的复杂性决定了App稳定性要达到近乎苛刻的要求。用户到店消费买优惠券时死活下不了单,定外卖一个明显可用的红包怎么点也选不中,上了一个新活动用户一点就Crash……过去发生过的这些画面太美不敢想象。客户端相对Web版最大的短板就是有发版的概念,对线上事故很难有即时生效的解决方式,每次发版都如临深渊如履薄冰,毕竟就算再完善的开发测试流程也无法保证不会将

Robust 2.0:支持Android R8的升级版热修复框架

1. 背景美团 Robust 是基于方法插桩的实时热修复框架,主要优势是实时生效、零 Hook 兼容所有 Android 版本。2016 年,我们在《Android 热更新方案 Robust》一文中对技术原理做了详细介绍,主要通过给每个方法插入 IF 分支来动态控制代码逻辑,进而实现热修复。其核心主要有两部分:一个是代码插桩,一个是自动补丁。代码插桩这部分随着 Javassist、ASM 工具的广泛使用,整体方案比较成熟了,迭代改进主要是针对插桩代码体积和性能的优化;自动补丁这部分在实际使用过程

【IOS开发】键盘上添加Done按钮

1.创建对像文本输入框UITextField *textField = [[UITextField alloc]initWithFrame:CGRextMake];2.设置键盘按钮类型[textField setReturnKeyType:UIReturnKeyDone];3.设置输入框的Delegeatetextfield.delegate = self;4.实现Delegate方法- (void)textFiel

Swift 在编译app时检查xcode/ios sdk版本号

问题描述:构建自己的sdk工程事,同时支持xcode10和xcode11编译?.darkContent只能在iOS13中有效解决方案

用Swift3和Object-C 创建一个类

Swift 3import UIKitclass modelDemo: NSObject {         var name : String = ""     var emailId : String = &qu

支付宝领大额红包
支付宝领大额红包
似水流年
    今日已经过去小时
    这周已经过去
    本月已经过去
    今年已经过去个月
热门文章

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.030 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计