![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
众生回避
这个作者很懒,什么都没留下…
展开
-
自定义View-坐标转换
坐标转换默认情况下,画布坐标的原点就是绘图区的左上角,向左为负,向右为正,向上为负,向下为正,但是通过 Canvas ᨀ供的方法可以对坐标进行转换。转换的方式主要有 4 种:平移、旋转、缩放和拉斜:1)平移:public void translate(float dx,float dy)坐标平移,在当前原点的基础上水平移动 dx 个距离,垂直移动 dy 个距离,正负符号决定方向。坐标原原创 2017-03-27 14:53:15 · 365 阅读 · 0 评论 -
Android为什么加载不了java字节码
首先你需要了解Dalvik虚拟机以及Dalvik虚拟机和Java虚拟机的区别: 浅入Dalvik虚拟机 如果你了解了Dalvik虚拟机,那下面开始了Hello.java文件:public class Hello { public static void main(String[] args){ //System.out.print("Hello"); ...原创 2018-12-25 10:48:05 · 333 阅读 · 0 评论 -
readelf命令使用
readelf命令,一般用于查看ELF格式的文件信息,常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a) 等包含ELF格式的文件。以下命令的使用是基于android编译出来的so文件上面去运行。1.显示elf文件开始的文件头信息: 2.以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名3.显示符号的时候,显示...原创 2018-12-19 09:36:16 · 246 阅读 · 0 评论 -
Android_Binder机制
Binder是Android系统提供的一种IPC机制,除了Binder以外,还有管道和socket等等IPC机制。可以将Android系统看作是一个基于Binder通信的C/S架构,除了C/S架构所包含的Client端和Server端外,Android还有一个全局的Service Manager端,它的作用是管理系统中的各种服务(Service)。在Android系统的Binder机制...原创 2018-12-29 17:09:27 · 176 阅读 · 0 评论 -
史上超详细Python+Flask搭建服务器
https://www.jianshu.com/p/cd1925e90eda原创 2018-12-29 09:30:57 · 3595 阅读 · 1 评论 -
白话Android系统架构
Android采用层次化系统架构,Android由底层往上分为4个主要功能层,分别是Linux内何层,系统运行时库层,应用程序框架层和应用程序层。Linux内核层Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心提醒功能。Android内核对Linux内核进行了增强,增加了一些面向移动计算的特有功能...原创 2018-12-23 15:11:22 · 266 阅读 · 0 评论 -
反编译-史上超详细的smali文件解读
Dalvik虚拟机加载的是dex文件,Dex文件是Dalvik虚拟机的可执行文件格式,dex文件很难看懂,baksmali和smali是对Dex文件的反汇编器和汇编器,通过对Dex文件反编译得到smali文件,smali文件是对Dalvik虚拟机字节码的一种解释(也可以说是翻译),并非一种官方标准语言。通过对smali文件的解读可以获取源码的信息。Dalvik指令是Dex文件最主要的组成部分:...原创 2018-12-23 13:28:15 · 8608 阅读 · 2 评论 -
通过ClassLoader动态加载了解安卓apk加载机制
ClassLoader下面的两个子类:1)PathClassLoader:只支持操作Dex文件或者已经安装的apk文件,已经安装的apk在手机的data/dalvik目录中存在缓存的dex文件。2)DexClassLoader:支持.apk、.jar和.dex文件,并且会在指定的outpath路径释放出dex文件。 项目结构:准备2个文件:1)IDynamic.java...原创 2018-12-17 18:14:04 · 389 阅读 · 0 评论 -
android中的app加固
1.app加固需要3个对象:1)需要加密的源apk2)壳程序apk(负责解密源apk)3)加密工具(将源apk进行加密;和壳Dex合成新的Dex) 2.app加固需要用到的知识点:1)对dex文件格式的理解和熟悉2)熟悉apk打包流程3)熟悉反编译的流程4)对android虚拟机底层有一定的理解和apk在android平台上的加载机制 以下是参考大神博客...原创 2018-12-17 11:26:37 · 754 阅读 · 0 评论 -
超详细的Dalvik指令
Dalvik虚拟机比Java虚拟机执行速度快通过实例来对比Java字节码和Dalvik字节码的不同源码如下:public class Hello { public static void main(String[] args){ Hello hello = new Hello(); System.out.println(hello.foo(5,...原创 2018-12-26 16:10:07 · 3114 阅读 · 0 评论 -
浅入Dalvik虚拟机
Dalvik虚拟机是Android平台的核心组件,特点如下:体积小,占用内存空间小 专有的DEX可执行文件格式,体积更小,执行速度更快 常量池采用32位索引值,寻址类方法名,字段名,常亮更快 基于寄存器架构,病拥有一套完整的指令系统 提供了对象生命周期管理,堆栈管理,线程管理,安全和异常管理以及垃圾回收等重要功能 所有的Android程序都运行在Android系统进程中,每个进程都...原创 2018-12-19 16:50:58 · 472 阅读 · 0 评论 -
自定义View-剪切区
Canvas 提供了剪切区的功能,剪切区可以是一个 Rect 或者是一个 Path,两个剪切区还能进行图形运算,得到更加复杂的剪切区。我们来看看相关的方法:public boolean clipRect(Rect rect)public boolean clipRect(RectF rect)public boolean clipRect(float left,float top,fl原创 2017-03-27 13:50:44 · 291 阅读 · 0 评论 -
自定义View-Rect和RectF
Rect 类定义了一个矩形结构,同样实现了 Parcelable 序列化接口。Rect 类定义了 left、top、right、bottom 四个成员变量,我们需要正确理解这 4 个成员变量的作用:left:矩形左边线条离 y 轴的距离top:矩形上面线条离 x 轴的距离right:矩形右边线条离 y 轴的距离bottom:矩形底部线条离 x 轴的距离矩形是一种非常常见的图原创 2017-03-27 11:40:42 · 1506 阅读 · 0 评论 -
自定义View-Point类和PointF类
Point 类和 PointF 类:Point 类是一种最简单的结构,代表一个“点”,实现了 Parcelable 接口,支持序列化与反序列化。Point 类定义了两个 int 成员 x 和 y,代表点的 x 坐标和 y 坐标,图形坐标系与数学中的平面坐标系有所不同,x 方向向左为负,向右为正,y 方向向上向负,向下为正,图形坐标系的原点在左上角,这一点要特别注意,所以,默认情况下,当 x、y原创 2017-03-27 11:26:44 · 5093 阅读 · 1 评论 -
GitHub的使用
GitHub 是全球最大的代码托管网站,主要是借助 Git 来进行版本控制的。任何开源软 件都可以免费地将代码提交到 GitHub 上,以零成本的代价进行代码托管。GitHub 的官网 地址如下: https://github.com/ 官网的首页如图 14.1所示。 首先你需要有一个 GitHub账号才能使用 GitHub的代码托管功能,点击 Sign up for Git原创 2017-03-15 13:48:06 · 735 阅读 · 0 评论 -
自定义ViewGroup
ViewGroup 运行的基本流程大致为:1) 测量容器尺寸重写 onMeasure()方法测量容器大小,和自定义组件有所区别的是,在测量容器大小之前,必须先调用 measureChildren()方法测量所有子组件的大小,不然结果永远为 0。2) 确定每个子组件的位置重写 onLayout()方法确定每个子组件的位置(这个其实挺麻烦,也是定义容器的难点部分),在 on原创 2017-03-22 15:33:45 · 239 阅读 · 0 评论 -
Kotlin-超详细协程简单易懂
转自https://www.jianshu.com/p/6cadc0c9ac00原创 2019-07-25 18:28:00 · 196 阅读 · 0 评论