APK瘦身记,如何实现高达53%的压缩效果

原帖:http://bbs.pediy.com/showthread.php?t=209029&highlight=apk+%E7%98%A6%E8%BA%AB+%E8%BA%AB 1、我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老...

2016-08-23 19:00:08

阅读数 3402

评论数 0

10条命令,一分钟分析Linux性能问题

当你登录到一台存在性能问题的Linux服务器上时,在头一分钟,你会检查什么? 我们看看Netflix的性能工程师是怎么做的。 Netflix大量使用EC2 Linux服务器,很多时候是用一些较为高层的工具做云或实例层次的分析。不过有时仍然需要登录到某个实例上,运行一些标准的Linu...

2016-08-22 16:16:26

阅读数 571

评论数 0

我脑海中的优秀技术团队

文中的“我”,其实不是一个单纯的角色,它可能会包含多层含义,不管是我作为一个团队的管理者,还是我作为一名技术团队的普通员工,都会对自己的团队有一些期许,一些定义,一些要求,而这就是今天我们要谈论的话题。希望这些思考能够对管理者或者求职者有些帮助。 团队的首先组成就是人,那我理想中的技术团队中的人...

2016-08-22 15:16:13

阅读数 363

评论数 0

Arm汇编学习笔记(九)——高效的分支代码及非对齐数据的访问

分支代码switch(x)在我们平常的代码中是非常常见的,而且也是比较耗时的操作,如果优化以后可以对代码的效率有很大提升。 1. 对于0 此种情况N不能太大,对于下面C代码: int ref_switch(int x) { switch (x) { c...

2016-08-19 16:58:19

阅读数 1086

评论数 2

Arm汇编学习笔记(八)——寄存器的使用

在程序中,我们可以使用16个通用寄存器中的14个来保存自己的数据,r13和r15分别是sp和pc寄存器,我们无法使用。 ATPCS规定,栈指针应该是8字节对齐。 ATPCS规定,被调用函数必须保证在执行前和执行后r4-r11的内容不变,即被调用函数必须在开始保存r4-r...

2016-08-18 17:23:20

阅读数 1850

评论数 0

Arm汇编学习笔记(七)——ARM9五级流水及流水线互锁

本文主要是通过分析五级流水及流水线互锁的原理,从而可以编写出更加高效的汇编代码。 1. ARM9五级流水线 ARM7采用的是典型的三级流水线结构,包括取指、译码和执行三个部分。其中执行单元完成了大量的工作,包括与操作数相关的寄存器和存储器读写操作、ALU操作及相关器件之间的数据传输。这三个阶段...

2016-08-17 17:26:06

阅读数 5422

评论数 0

Arm汇编学习笔记(六)——函数调用栈空间以及fp寄存器

Arm上函数调用的规则在ARM System Developer's Guide文档中的ATPCS部分有详细的定义,这里主要通过函数调用过程中函数栈的情况来说明fp和sp等寄存器的作用。有关ATPCS的详细内容可以去文档中看。 fp叫做frame pointer寄存器,即栈帧指针寄存器;sp叫...

2016-08-17 12:44:12

阅读数 13806

评论数 1

Arm汇编学习笔记(前序)——ARM处理器简介

一 ARM处理器与ARM指令集 整个ARM处理器被分为三个部分: ClassicEmbeddedApplication Classic被称为经典系列。 ARM1~ARM11一直都以数字来命名,ARM12以后改为用Cortex命名。Cortex有以下几个分类: Cort...

2016-08-15 15:03:49

阅读数 588

评论数 0

Arm汇编学习笔记(五)——MOVS及^符号等

1. MOVS MOV一般不影响CPSR, 除非执行类似MOV pc, lr,效果上等同于BX lr,可能会影响到T标志位 MOVS总是会影响CPSR, 包括N,Z,C标志位,执行MOVS pc, lr时,CPSR会被SPSR覆盖(内核态,USER和SYSTEM模式下没有SPSR) ...

2016-08-15 11:14:18

阅读数 5920

评论数 0

Arm汇编学习笔记(四)——Arm的37个寄存器和异常处理

1. Arm的37个寄存器 看下面这张图: 可以看到User和System模式下的R0~R15和CPSR都是相同的寄存器,而在其它特权模式下用灰色三角形标注的那些寄存器,是该特权模式下特有的寄存器,比如在User模式下存入R8值0x50,切换到FIQ模式下存入R8值0x100,再切换回User...

2016-08-12 19:00:55

阅读数 1476

评论数 0

Arm汇编学习笔记(三)——GCC内联汇编

之前每次看内联汇编都有一些地方看不明白,"=r","r","%0","%1"这些符号看不明白,本次总结一下这些内容吧,虽然很简单,但是手不能懒! 首先,C语言中为什么要内联汇编以及其带来的好处这个我就不说了。...

2016-08-12 17:34:15

阅读数 6009

评论数 0

Arm汇编学习笔记(二)——编写编译并执行依赖外部模块的汇编代码以及PIC代码分析

1. 编译依赖外部模块的汇编代码并执行 创建test.S汇编文件,并输入如下内容: .global main .extern printf .text main: stmfd sp!, {r11, lr} ldr r0, =str bl printf ldmfd sp...

2016-08-12 11:43:47

阅读数 1102

评论数 2

Arm汇编学习笔记(一)——编写编译并执行简单汇编文件

建立一个test.S文件,并输入以下内容: mov r0, r1 命令行下输入命令: arm-linux-androideabi-as test.S -o test.o 得到test.o 然后输入命令: arm-linux-androideabi-objdump -d test.o 得...

2016-08-11 11:38:47

阅读数 4273

评论数 0

Android安全防御-ELF篇(简单总结)

原帖地址:http://bbs.pediy.com/showthread.php?t=203611 由于近几年来移动应用变得火热,呈突发式激增。数据以及软件也面临各种安全挑战。软件保护,数据保护也成为了一个热门话题。今天就专门对Android移动软件中的ELF文件的保护进行简要说明。主要...

2016-08-10 16:31:41

阅读数 1353

评论数 0

程序的链接和装入及Linux下动态链接的实现

原帖地址:http://blog.chinaunix.net/uid-11848011-id-96382.html 程序的链接和装入存在着多种方法,而如今最为流行的当属动态链接、动态装入方法。本文首先回顾了链接器和装入器的基本工作原理及这一技术的发展历史,然后通过实际的例子剖析了Linux...

2016-08-09 17:27:02

阅读数 400

评论数 0

Android ELF文件中.got .plt .rel.plt .rel.dyn节的区别和联系

以下暂时做为自己的笔记,不做详细介绍。 首先打印出来Section Header: 可以看到上面.got和.plt节的类型是PROGBITS,也就是代码;而.rel.dyn和.rel.plt是REL,它们是Elf32_Rel类型的结构体数据。这就是为什么用ida查看ELF文件的时候只能看见...

2016-08-03 17:40:40

阅读数 3319

评论数 0

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