关闭

Android内存优化利器:MAT打开内存Bitmap(Windows版本)

本文主要使用Android内存分析工具MAT,查看应用内存中的原始图片,以便发现Bitmap产生的内存问题。 方法原始地址:http://androidperformance.com/2015/04/11/AndroidMemory-Open-Bitmap-Object-In-MAT.html 再此首先谢过,该文中使用的Linux系统,无奈本人使用的Windows系统,一番折腾以后记录于此。...
阅读(155) 评论(0)

Android安全攻击——对象序列化OOM问题

前言 最近在项目中使用ObjectInputStream/ObjectOutputStream进行对象的序列化和反序列化,出现了OOM的问题,在解决的过程中简单的研究了一下对象的序列化和反序列化(使用Serializable接口)的过程,简单做一个记录。发现了一个持久化存储序列化数据的安全风险,可能会受到恶意攻击,导致必现的OOM。 使用场景 应用在使用过程中,首先使用ObjectO...
阅读(364) 评论(0)

Android之Handler的post注意事项

最近在开发的时候遇到一个问题,post到主线程handler里面的runnable一直得不到执行,找了好久发现问题,记录于此。     看一下下面的代码: public class TestRunnableTask implements Runnable { private static final String TAG = "TestRunnableTask"; private st...
阅读(1007) 评论(0)

浅谈Android实现3D旋转

本文主要记录有关View以及Bitmap的3D旋转效果的实现方法与相关思考。 1 使用Animation实现View的3D旋转 采用继承Animation的方法实现View的3D旋转效果,在ApiDemos里面有详细的代码,具体路径为src/com/example/android/apis/animation/Rotate3dAnimation.java 贴一下代码,记录一下: /* *...
阅读(2470) 评论(0)

Android广播机制详解

1 广播类型 从广播的注册方式来分,分为以下2种: (1)静态广播:通过的形式在AndroidManifest.xml中注册的广播; (2)动态广播:通过context. registerReceiver在程序中显示注册的广播; 上面静态广播和动态广播比较明显的2个区别:    1)静态广播在进程没有运行的时候,也可以收到,这时候会先启动进程,然后处理广播onReceive函数(静态广播...
阅读(4409) 评论(0)

Android减少布局层次--有关Activity根视图DecorView的思考

1 前面文章里面总结的一张图              一直觉得有关DecorView还是有些问题没有搞清楚,今天在看了一点有关SurfaceFlinger的内容以后,顿时突发奇想,想到之前的问题,之前的思考是:     虽然可以将DecorView作为Activity布局的父View,也就是只存在  DecorView---->Activity Layout两层,但是...
阅读(5739) 评论(2)

Scroller滑动原理--滑动动画驱动原理+滑动不到位误差分析

记录:这里主要记载最近学习的结合Scoller实现View的滑动,从应用和源码的角度去分析一下滑动实现的过程。1、View的相关支持 /** * The offset, in pixels, by which the content of this view is scrolled * horizontally.这里说的是view的内容滑动的偏移量,不是view本身,准确的...
阅读(3118) 评论(2)

Android消息机制Looper与VSync的传播

1 主要内容本文主要简单记录在native层Looper消息机制的相关内容,主要着手于下面几个问题: (1)消息机制的原理; (2)VSync是如何借助消息机制进行传播的;2 Android消息机制2.1 应用进程的创建说起Android的消息机制,先大致的理一下Android应用的运行机制,Android上层是基于消息机制的,首先考虑一个问题,描述如下:Android应用作为运行在Linux平...
阅读(2624) 评论(3)

Android垂直同步信号VSync的产生及传播结构详解

1 记录垂直同步信号,也就是下图的VSync产生的过程,主要包括以下几个点: (1)VSync是如何产生的? (2)VSync最初是在哪个进程中捕获的? (3)VSync是如何分发到各个应用进程的? (4)view.invalidate是如何与VSync配合,从而实现重绘的? 2 SurfaceFlinger进程 以前的Android系统中SurfaceFlinger是在Syst...
阅读(3819) 评论(1)

搜索目录

文章记录一下最近看书的一些有关目录搜索的实现,基于java的Pattern,采用正则表达式实现,能够实现基于正则表达式的的目录搜索! 1 String 简单的记载一下java里面的String,因为和之前学习的C++中的string不大一样(一下子想不出来主要些什么,先写一点,以后再补充) (1)不能被继承:点开源码,可以看到public final class String,String被...
阅读(326) 评论(0)

Eclipse常用快捷键记录

最近开始学习java,记录一下Eclipse我觉得常用的一些快捷键,慢慢补充,持续更新。。。。 注释: ctrl+/或者ctrl+7:切换注释,注释或取消注释当前选择的所有行,使用的是单行注释// ctrl+shift+/:添加块注释,在当前选择的多行代码周围添加块注释,使用/* */ ctrl+shift+\:取消块注释,在当前选择的多行代码周围除去块注释,去除/* */ ...
阅读(284) 评论(0)

阶乘的计算

最近看到一条题目,计算n!,阶乘由于它的特殊性,需要涉及到大数运算,本文在32位机器下描述一个简单的计算方法。         网上有很多种方法,本文就用数组的形式来保存计算结果,首先可以知道unsigned的数据范围是0-2^32-1,因此常规的想法就是将进制提升到2^32,从而用一个数组来保存计算结果,下面给出具体代码: int bigNum( int x, unsigned *p, in...
阅读(329) 评论(0)

linux0.11源代码在gcc4.3.x gcc4.4.x下编译bochs下模拟

注明:本人刚刚开始学习linux系统,纯纯的小菜鸟一个,在这里写下这篇文章的主要目的是记载最近的一些工作,本文的大多数内容均来自互联网上的先驱者,此处只是在自己现有的环境下,根据需要进行了一些资源的整合,另外本文只是一个工作记录性质的日记,并没有技术含量,因此,望各位看官明确!最后再次隆重声明本文借鉴了很多先驱者的相关工作,如果文中没有提到着实是因为时间太长了找不到出处了,还望各位原创的前辈们见谅...
阅读(836) 评论(1)

源代码笔记——container_of

近日在看红黑树的相关知识,在Linux的红黑树源代码中看到了...
阅读(446) 评论(0)

满足条件的第n个数

题目:满足2...
阅读(382) 评论(0)

满足条件的最小组合数m

题目:输入一个正整数n,请找出最小的正整数m(m>9,也就是至少是两位数),使得m的各个位(个位、十位、百位。。。)乘积之和等于n,不存在输出-1。 例如:n = 36时,输出49; n=100时,输出455; 分析:首先需要判断对于任意一个n,是否存在相应的m,判断依据是对于十进制而言,每一位在0-9之间,若该数存在10以上的质因子,则一定不存在相应的m。 逆向思维:不存在10以上的质因子...
阅读(697) 评论(0)

两点间方格路径总数

题目描述:一个长方形,由m*n个大小...
阅读(1965) 评论(1)

C++ new、堆上和栈上分配对象

new:() 1 仅在堆上才能创建的对象...
阅读(3409) 评论(0)

linux 进程文件 文件描述符

转载自:Jezze 、辉仔 url:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html          http://blog.csdn.net/kennyrose/article/details/7595013...
阅读(3006) 评论(0)

linux I/O复用select、poll和epoll

转载自:哈维、dpkirin...
阅读(1619) 评论(0)
22条 共2页1 2 下一页 尾页
    个人资料
    • 访问:40212次
    • 积分:609
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:4篇
    • 译文:0篇
    • 评论:10条
    最新评论