- 博客(22)
- 资源 (3)
- 收藏
- 关注
原创 Android内存优化利器:MAT打开内存Bitmap(Windows版本)
本文主要使用Android内存分析工具MAT,查看应用内存中的原始图片,以便发现Bitmap产生的内存问题。方法原始地址:http://androidperformance.com/2015/04/11/AndroidMemory-Open-Bitmap-Object-In-MAT.html再此首先谢过,该文中使用的Linux系统,无奈本人使用的Windows系统,一番折腾以后记录于此。
2017-04-15 13:44:11 483
原创 Android安全攻击——对象序列化OOM问题
前言最近在项目中使用ObjectInputStream/ObjectOutputStream进行对象的序列化和反序列化,出现了OOM的问题,在解决的过程中简单的研究了一下对象的序列化和反序列化(使用Serializable接口)的过程,简单做一个记录。发现了一个持久化存储序列化数据的安全风险,可能会受到恶意攻击,导致必现的OOM。使用场景应用在使用过程中,首先使用ObjectO
2017-02-27 14:50:56 1512 3
原创 Android之Handler的post注意事项
最近在开发的时候遇到一个问题,post到主线程handler里面的runnable一直得不到执行,找了好久发现问题,记录于此。 看一下下面的代码:public class TestRunnableTask implements Runnable { private static final String TAG = "TestRunnableTask"; private st
2016-12-13 19:30:41 5291
原创 浅谈Android实现3D旋转
本文主要记录有关View以及Bitmap的3D旋转效果的实现方法与相关思考。1 使用Animation实现View的3D旋转采用继承Animation的方法实现View的3D旋转效果,在ApiDemos里面有详细的代码,具体路径为src/com/example/android/apis/animation/Rotate3dAnimation.java贴一下代码,记录一下:/* *
2016-06-27 22:56:29 6261 1
原创 Android广播机制详解
1 广播类型从广播的注册方式来分,分为以下2种:(1)静态广播:通过的形式在AndroidManifest.xml中注册的广播;(2)动态广播:通过context. registerReceiver在程序中显示注册的广播;上面静态广播和动态广播比较明显的2个区别: 1)静态广播在进程没有运行的时候,也可以收到,这时候会先启动进程,然后处理广播onReceive函数(静态广播
2016-06-07 23:16:13 15765 2
原创 Android减少布局层次--有关Activity根视图DecorView的思考
1 前面文章里面总结的一张图 一直觉得有关DecorView还是有些问题没有搞清楚,今天在看了一点有关SurfaceFlinger的内容以后,顿时突发奇想,想到之前的问题,之前的思考是: 虽然可以将DecorView作为Activity布局的父View,也就是只存在 DecorView---->Activity Layout两层,但是
2016-04-13 09:21:25 12069 3
原创 Scroller滑动原理--滑动动画驱动原理+滑动不到位误差分析
记录:这里主要记载最近学习的结合Scoller实现View的滑动,从应用和源码的角度去分析一下滑动实现的过程。1、View的相关支持 /** * The offset, in pixels, by which the content of this view is scrolled * horizontally.这里说的是view的内容滑动的偏移量,不是view本身,准确的
2016-04-11 20:29:59 5289 3
原创 Android消息机制Looper与VSync的传播
1 主要内容本文主要简单记录在native层Looper消息机制的相关内容,主要着手于下面几个问题: (1)消息机制的原理; (2)VSync是如何借助消息机制进行传播的;2 Android消息机制2.1 应用进程的创建说起Android的消息机制,先大致的理一下Android应用的运行机制,Android上层是基于消息机制的,首先考虑一个问题,描述如下:Android应用作为运行在Linux平
2016-03-22 20:37:12 6860 5
原创 Android垂直同步信号VSync的产生及传播结构详解
1 记录垂直同步信号,也就是下图的VSync产生的过程,主要包括以下几个点: (1)VSync是如何产生的? (2)VSync最初是在哪个进程中捕获的? (3)VSync是如何分发到各个应用进程的? (4)view.invalidate是如何与VSync配合,从而实现重绘的? 2 SurfaceFlinger进程 以前的Android系统中SurfaceFlinger是在Syst
2016-03-16 20:22:54 15236 3
原创 搜索目录
文章记录一下最近看书的一些有关目录搜索的实现,基于java的Pattern,采用正则表达式实现,能够实现基于正则表达式的的目录搜索!1 String简单的记载一下java里面的String,因为和之前学习的C++中的string不大一样(一下子想不出来主要些什么,先写一点,以后再补充)(1)不能被继承:点开源码,可以看到public final class String,String被
2015-07-03 14:40:58 610
原创 Eclipse常用快捷键记录
最近开始学习java,记录一下Eclipse我觉得常用的一些快捷键,慢慢补充,持续更新。。。。注释:ctrl+/或者ctrl+7:切换注释,注释或取消注释当前选择的所有行,使用的是单行注释//ctrl+shift+/:添加块注释,在当前选择的多行代码周围添加块注释,使用/* */ctrl+shift+\:取消块注释,在当前选择的多行代码周围除去块注释,去除/* */
2015-06-12 11:07:02 440
原创 阶乘的计算
最近看到一条题目,计算n!,阶乘由于它的特殊性,需要涉及到大数运算,本文在32位机器下描述一个简单的计算方法。 网上有很多种方法,本文就用数组的形式来保存计算结果,首先可以知道unsigned的数据范围是0-2^32-1,因此常规的想法就是将进制提升到2^32,从而用一个数组来保存计算结果,下面给出具体代码:int bigNum( int x, unsigned *p, in
2015-03-11 13:19:27 1180
原创 linux0.11源代码在gcc4.3.x gcc4.4.x下编译bochs下模拟
注明:本人刚刚开始学习linux系统,纯纯的小菜鸟一个,在这里写下这篇文章的主要目的是记载最近的一些工作,本文的大多数内容均来自互联网上的先驱者,此处只是在自己现有的环境下,根据需要进行了一些资源的整合,另外本文只是一个工作记录性质的日记,并没有技术含量,因此,望各位看官明确!最后再次隆重声明本文借鉴了很多先驱者的相关工作,如果文中没有提到着实是因为时间太长了找不到出处了,还望各位原创的前辈们见谅
2015-01-21 16:06:42 1243 1
原创 满足条件的最小组合数m
题目:输入一个正整数n,请找出最小的正整数m(m>9,也就是至少是两位数),使得m的各个位(个位、十位、百位。。。)乘积之和等于n,不存在输出-1。例如:n = 36时,输出49; n=100时,输出455;分析:首先需要判断对于任意一个n,是否存在相应的m,判断依据是对于十进制而言,每一位在0-9之间,若该数存在10以上的质因子,则一定不存在相应的m。逆向思维:不存在10以上的质因子
2014-10-17 20:08:29 1833
转载 linux 进程文件 文件描述符
转载自:Jezze 、辉仔url:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html http://blog.csdn.net/kennyrose/article/details/7595013
2014-10-07 14:22:58 4430
转载 进程地址空间与虚拟存储空间的理解——转载自do2jiang
文章转载自:http://blog.csdn.net/do2jiang/article/details/4690967?reload在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际
2013-05-26 16:23:59 2031
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人