爬虫工程师分享:三步就搞定 Android 逆向-编程思维

本文源于我近期的一次公司内部分享,通过逆向某款 APP 来介绍逆向过程。由于仅作为学习用途,APP 的相关信息会被遮盖,敬请理解。 关于逆向 逆向——包括但不限于通过反编译、Hook 等手段,来解析一些功能的实现过程。 逆向在很多领域都有应用,比如如今爬虫技术已经遍地走,甚至不用写代码都可以爬取数据,导致前端开发的反爬意识也逐步提升。因此 JS、Android 等领域的逆向,已经成为爬虫开发

Android screencap的处理流程-编程思维

以下分析基于Android Q的代码   先大体整理screencap的处理流程1.获取DisplayIDstd::optional<PhysicalDisplayId> displayId = SurfaceComposerClient::getInternalDisplayId(); 2. 调用ScreenshotClient::capture截取屏幕图像,数据保存在一个Grap

android开发使用Serializable需要注意serialVersionUID的细节问题-编程思维

android开发使用Serializable需要注意serialVersionUID的细节问题     平时Android开发过程,我们经常需要接触对象系列化和反系列化问题,实现方法有大家知道的两种:即一种实现Serializable接口,另一种是实现Parcelable接口。而对于这两种实现的优缺点也行大家都耳熟能详了。但这两种的实现原理和细节问题大家又知道多少呢?下面简单介绍一下: 1

Qt Quick 配置android开发环境-编程思维

Qt Quick 配置android开发环境          如果用Qt来开发Android程序,安装qt后,在QtCreator 的Kits配置中,Android的选项由于配置不全而不能被选中使用,如下,这是由于Qt开发Android的开发环境还没有配置而引起的。          在设备选项配置中,Android需要配置的模块由三个:(1)JDK, (2)Android  NDK, (3

基于Appium,封装自己的常用方法-编程思维

Appium算是老牌移动端App自动化测试工具了,在使用它的过程中,使用者经常会根据个人习惯,把较常用的方法封装在一起,方便调用。以下是我的封装,希望对你有启发。 from typing import Dict, NoReturn, Tuple, List, Union, Optional from appium import webdriver from selenium.webdriver

Kotlin 之 let、with、run、apply、also 函数的使用-编程思维

一、内联拓展函数 let let 扩展函数的实际上是一个作用域函数,当你需要去定义一个变量在一个特定的作用域范围内,let函数的是一个不错的选择;let函数另一个作用就是可以避免写一些判断null的操作。 1.1 let 函数的使用的一般结构 object.let { it.todo() //在函数体内使用it替代object对象去访问其公有的属性和方法 ... } //另一种

用安卓 WebView 做一个“套壳”应用-编程思维

前言 目前手机应用市场上的 APP 类型主要为以下两种: Native App(原生应用):直接针对平台(Android、iOS 等手机系统)进行开发,属于性能最优的方案,也是开发成本最大的方案。 Hybrid App(混合应用):即为原生 WebView 加 HTML5 网页内容的形式。只需要开发一套 HTML5 业务逻辑,就可以同时运行在不同的平台上,相对比较灵活,内容可以快速更新,开

乘风破浪,遇见最美Windows 11之现代Windows开发运维 - VMware Player虚拟机安装统信OS(UOS)-编程思维

背景 最近Figma封杀大疆引起了一波国产软件崛起的爱国热潮,那么除了国产软件,国产系统的替代者表现如何,想看看带有国字号的统信OS到底目前做的如何,于是我们要通过虚拟机来体验下。 那么要研究统信OS,难道要我退回去?没门,我怎么会舍得离开最美Windows 11呢?那只有一个不错的主意,那就是虚拟机跑跑,谁让我机器性能还不错呢,嘿嘿! 关于虚拟机,Windows上有两大选择,VMware和

跑马灯带你深入浅出TextView的源码世界-编程思维

一、背景 想必大家平时也没那么多时间是单独看源码,又或者只是单纯的看源码遇到问题还是不知道怎么从源码的角度解决。 但是大家平时开发过程中肯定会遇到这样或那样的小问题,通过百度、Google搜索都无果,想尝试分析源码又不知道从什么地方开始分析起,导致最终放弃。 本篇文章就是通过一个小问题着手,从思路到实施一步步教大家面对一个问题时怎么从源码的角度去分析解决问题。 1.1 问题背景 在Android

使用最新AndroidStudio编写Android编程权威指南(第3版)中的代码会遇到的一些问题-编程思维

Android编程权威指南(第3版)这本书是基于Android7.0的,到如今已经过于古老,最新的Android版本已经到10,而这本书的第四版目前还没有正式发售,在最近阅读这本书时,我发现这本书的部分代码已经不适合最新的Android开发,所以写下了这篇文章,将我碰到的坑写下来,帮助现在同样在学习使用这本书的人。 本文所说的环境基于AndroidStudio 3.5,Android SDK 2

乘风破浪,遇见最美Windows 11之新微软商店(Microsoft Store)生态 - 安卓(Android™)子系统WSA已支持H.264硬件解码,视频应用得救-编程思维

什么是安卓(Android™)子系统WSA Windows Subsystem for Android™️使你的Windows 11/10设备能够运行Amazon Appstore中的Android应用程序。 2022年3月8日,为Windows Insiders在Windows 11上更新Windows Subsystem for Android™ https://blogs.window

Android调试移动端webview-编程思维

尝试了各种Mac版本的安卓模拟器,包括Android Studio、Genymotion以及国内的网易MuMu、夜神、蓝叠、腾讯手游助手,做的最好的是Android Studio,最难上手的也是Android Studio。 Android Studio有两种架构类型的镜像可选,分别是x86和arm,安装arm架构的镜像,非常卡,没法用,x86的镜像很流畅,只能用来调试基于x86架构的App 其

Android编译优化系列-kapt篇-编程思维

    作者:字节跳动终端技术———王龙海 封光 兰军健 一、背景 本文是编译优化系列文章之 kapt 优化篇,后续还会有 build cache, kotlin, dex 优化等文章,敬请期待。本文由Client Infra->Build Infra团队出品,powered by 王龙海,封光,兰军健 相信 android 开发对于 kapt 并不陌生,之前也有很多文章在编译优化过

三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。-编程思维

序 关于自动化测试的工具和框架其实有很多。自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不开自动化测试。自动化测试已经发展了很多年,在很多大的互联网公司里他们不但有自己的自动化测试框架,甚至基本都建立了自己的自动化测试平台或者已经对外开放使用的自动化测试云平台,也就是说自动化测试几乎已经

【Kotlin】初识Kotlin之面向对象-编程思维

【Kotlin】初识Kotlin之面向对象 1、类 在Kotlin中,类用关键字class来定义 如果一个类具有类体,那么需要使用{ }来写类体内容,如果不需要类体,那么只需要定义类名就可以了 // 定义一个alarmClock类 class AlarmClock { fun alarm() = println("叮铃铃...") } // 定义没有类体的alarm类 class Al

APK修改神器:插桩工具 DexInjector-编程思维

  本文介绍了一个针对Dex进行插桩的工具,讲解了一下直接修改Dalvik字节码和Dex文件时遇到的问题和解决方法 作者:字节跳动终端技术—— 李言 背景 线下场景中,我们经常需要在APK中插入一些检测代码,来实现一些记录方法调用耗时,或者增加一些打印日志的功能。目前的常规做法都是在编译期修改class字节码达到,例如byteX提供了方便的修改class框架。 但是,编译期修改灵活性不足,对