乐趣区

关于segmentfault-技术周刊:SegmentFault-思否技术周刊-Vol74-浅谈-Android-进阶指北

本期技术周刊一起理解 Android,欢送大家浏览 ~

外围常识进阶

Android 开发中的 SSL pinning // xiangzhihong

在日常的平安浸透过程中,咱们常常会遇到瓶颈无处下手,这时候如果攻击者从 APP 进行冲破,往往会有很多惊喜。然而目前市场上的 APP 都会为避免他人歹意盗取和歹意篡改进行一些保护措施,比方模拟器检测、root 检测、APK 加固、代码混同、代码反调试、反脱壳、签名校验等等反抗机制。而测试人员对 APP 进行浸透的首步操作通常就是上 burp 或者 Charles 这类抓包工具进行抓包,查看申请记录里的域名及链接地址是否能够进一步利用。

咱们都晓得 http 协定传输的是明文信息,是能够间接捕捉的,从而造成了数据泄露。为了避免中间人的拦挡,呈现了 HTTPS 加密机制。在 HTTPS 中,应用了证书 + 数字签名解决了抓包的问题,这里用到了两个概念:数字签名和数字证书。

TheRouter 的跨模块依赖注入实现原理 // 张涛

TheRouter 用于跨模块通信设计的 ServiceProvider,外围设计思维是参考了 SOA (面向服务架构)的设计形式。

具体到 Android 侧就是 AIDL 相似的实现。

模块化能力反对项:

反对跨模块依赖注入
反对自定义注入项的创立规定,依赖注入可自定义参数
反对自定义服务拦挡,单模块 mock 调试
反对注入对象缓存,屡次注入 只会 new 一次对象

Android 平台上 ABI 的确认 // 戈壁老王

ABI 即 Application binary interface,是 CPU 与指令集专属的应用程序二进制接口。它定义了一套规定,容许编译好的二进制指标代码能在所有兼容该 ABI 的操作系统中无需改变就能运行。不同的 Android 设施应用不同的 CPU,而不同的 CPU 反对不同的指令集。

ABI 蕴含以下信息:

可应用的 CPU 指令集(和扩大指令集)。
运行时内存存储和加载的字节程序。Android 始终是 little-endian。
在利用和零碎之间传递数据的标准(包含对齐限度),以及零碎调用函数时如何应用堆栈和寄存器。
可执行二进制文件(例如程序和共享库)的格局,以及它们反对的内容类型。Android 始终应用 ELF。
如何重整 C++ 名称。

最全的 Android 之 Dialog // 浪漫主义码农

Android 零碎提供的对话框父类为 Dialog, 外面并没有实现对话框的具体类型,比方单选、多选、列表等对话框,仅提供一个框架和标准。零碎为开发者提供了一个 多功能的对话框类 AlertDialog, 封装了各种对话框的款式,咱们只须要实现要显示的内容和监听。

大部分对话框就是应用零碎封装好的对话框 AlertDialog 的实例对象。AlertDialog 并不提供对外的构造方法,即不能间接通过 AlertDialog 的构造函数来生产一个 AlertDialog。因为 AlertDialog 所有的构造方法都是 protected 的。所以为了获取 AlertDialog 对象,零碎提供了一个动态外部类 Builder 让咱们应用,通过 Builder 能够创立 AlertDialog 对象。

利用与实际

浅谈 App 的启动优化 // xuexiangjys

在 Android 中,利用启动个别可分为三种:冷启动、温启动、热启动。

那么什么是冷启动、温启动和热启动呢?上面咱们来简略看一下它们的定义:

  • 冷启动:当启动利用时,后盾没有该利用的过程。这时零碎会又一次创立一个新的过程调配给该利用,这个启动形式就是冷启动。
  • 温启动:当启动利用时,后盾已有该利用的过程,然而 Activity 可能因为内存不足被回收。这样零碎会从已有的过程中来启动这个 Activity,这个启动形式叫温启动。
  • 热启动:当启动利用时,后盾已有该利用的过程,且 Activity 依然存在内存中没有被回收。这样零碎间接把这个 Activity 拉到前台即可,这个启动形式叫热启动。

因为冷启动绝对于其余启动形式多了过程的创立(Zygote 过程 fork 创立过程)以及利用的资源加载和初始化(Application 的创立及初始化),所以相对来说会比拟耗时,所以咱们个别说的 App 启动优化个别指的都是 App 的冷启动优化。

Android App 如何避免抓包 // xiangzhihong

在软件开发中,罕用的抓包形式有 Charles、Fiddler 和 Burp,它们通过在手机网络中增加代理的形式,而后装置信赖证书,接着就能够在 App 申请的时候拿到申请数据。不过,这也可能导致一些平安问题,所以对于咱们通常的解决形式是,对于线上运行的包,须要避免这些抓包伎俩。>

问答举荐

  • Android 11 利用进入后盾后前台服务外面的 Socket 被挂起?
  • 在和前端进行前后交互时呈现的问题?
  • 安卓开发,获取文件门路变成数字?
  • Android native 层 mediaplayer 源码批改,如何进行打桩测试?
  • 为什么理论大小和显示的大小相差那么多?
  • 前端安卓 app 开发,用什么技术栈比拟好呢?
  • Android 反复文件如何辨别?
  • Androidviewmodel 有一个 App 参数,异样 has no zero argument constructor?
  • android linearlayout 设置高度有效?

# SegmentFault 技术周刊 #

「技术周刊」是社区特地推出的技术内容系列,一周一主题。

每周二更新,欢送「关注」。大家也能够在评论处留言本人感兴趣的主题,举荐主题相干的优良文章。

如有问题能够增加小姐姐微信~

退出移动版