Chendd's Blog

世界上没有什么事情是一行代码不能解决的。如果有,那就两行。

Android程序逆向工程

       随着智能手机的普及,功能越来越强大。程序也越来多和复杂化。研究一下android系统的逆向工程也是挺有意思的。 目前android逆向工程还处于初级阶段。表现在于:

  • 1.没有完整的动态调试程序。目前由于android系统的bionic并不完全支持POSIX,导致现有编译的gdb不支持多线程无符号调试。(我实验了一下,的确多线程问题比较多,当然,gdb本身也有问题)。所以对于NDK逆向工程比较麻烦,以静态分析为主。
  • 2.手机本身种类较多,而且android版本繁多,更新较快,增加了逆向的难度。

如何优化手机电量

       通过电量的计算公式我们可以看到影响电量的因子无非就是CPU的时间和网络数据以及Wakelock,GPS的使用。 在09年Google IO大会Jeffrey Sharkey的演讲(Coding for Life — Battery Life, That Is)中就探讨了这个问题,指出android应用的耗电主要在以下三个方面:

  • 大数据量的传输。
  • 不停的在网络间切换。
  • 解析大量的文本数据。

Github 简单使用

一、从远程克隆项目,修改后提交

1、先切换要放项目的本地目录

1
2
3
C:\Users\chendd>cd E:\web

C:\Users\chendd>e:

Android 多语言版本开发

       最近项目中用用到语言切换功能,第一想到的就是资源文件,没错。

       在资源文件中新建一个文件夹values-en,en表示英语,有一些还细化到地区,如values-en-rUS 即美国地区的英语,r是必需的。在里面新建一个strings.xml,把默认values文件夹中的strings.xml中的内容Copy至values-en中的strings.xml,再把该文件夹中的中文内容转换为英文,例如设置转换为set。不止values文件可以这样,res文件夹下的都可以,但是assets就不行,这是外部文件。如果有做webapp引用网页形式 考虑多语言版本,可以java代码判断系统语言,再去调用相应的html文件。

编写高效的Android代码

       编写Android程序时要时刻考虑执行的效率,这系统不是想象中的那么快,并且你还要考虑它电池的续航能力。写程序的时候,要尽可能的使你的代码优化而提高效率。

       对于如何判断一个系统的不合理,这里有两个基本的原则:

1、不要做不必要做的事情。

2、尽可能的节省内存的使用。

Android学习日记25--ANR和Hander消息机制

1、ANR(Application Not Responding)定义

  在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框, 这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行, 也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。 因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒, BroadcastReceiver的最长执行时间则是10秒。

Android学习日记24--菜单开发

  菜单是任何应用程序必不可少的一项。按下Menu键或者长按某个View就会弹出相应菜单,当然前提是应用程序有实现菜单功能。 Android平台下的菜单有:Options Menu(选项菜单)、Submenu(子菜单)、Context Menu(上下文菜单)。 这次的案例用以前的索尼真机测试,就不贴代码和运行截图,主要贴些理论知识。菜单这块比较简单,代码实例看这里

Android学习日记23--XML解析

一、简述

  XML语言是跨平台,JAVA对XML语言支持得比较好,android系统的应用层平台是JAVA做的,所以用XML。 XML解析比较简单。XML解析就是将获取到的数据分离出来,基本的网络数据传输,需要使用XML 比如天气预报,从网上获取的是XML文件,通过XML解析可以把天气状态读出来 例:

1
2
3
<forecast_date data="2009-07-31" />
<condition data="晴" />
<humidity data="湿度: 65%" />

可得到 2009-07-31 晴 湿度:65%

还有一作用是保存你的数据,比如做个旅游网站,你需要把全国各个省、城市名称写到XML文件进行保存,在程序中通过解析读取调用。

Android学习日记22--Animation动画简介

       Animation动画主要有两种:帧动画(Frame Animation)和补间动画(Tween Animation)。 补间动画主要包括对位置、角度、尺寸等属性的变化,而帧动画则是通过若干帧图片轮流切换显示的。

1、帧动画

       按顺序显示事先准备好的图片,跟动漫类似。主要用到的类AnimationDrawable,每个帧都是AnimationDrawable对象。 定义帧动画可以在代码直接进行。也可以通过XML文件定义,定义帧动画的文件存放在res/anim目录下。XML指定帧出现的顺序 及每个帧的持续时间。