-
主要还是说一下Android软件中的类。
众所周知,Android程序开发中大量使用了监视器。,
如Button的点击事件响应的OnclickListener、长按事件OnLongClickListener、ListView
但是由于监听器只能临时使用一次
所以多采用匿名内部类的形式来实现。
如下面的按钮点击事件响应代码
—————————————————————————————————————————————————————我是分割线———————————————————————————————————————————————————————————————————
—————————————————————————————————————————————————————我是分割线———————————————————————————————————————————————————————————————————
btn.setClickListener(new Android.view.View.OnclickListener) //这个代码的是Android对Button的三种实现方式的一种
{
public void OnClick(View v){
}
});
public interface OnclickListener{
void OnClick(View v)
}
分析一下,在MainActivity.smali中 可以看到
new-instance //创建一个实例
invoke-direct //初始化实例
invoke-virtual //设置按钮事件监听器
Tip: invoke-**表示调用什么类型的函数,后面还有一堆参数
书上最后居然写了一句不必关心注解和监听器是什么鬼啦
黑人问号.jpg
—————————————————————————————————————————————————————我是分割线———————————————————————————————————————————————————————————————————
注解类
注解是Java的语言特性,在Android的开发过程中也得到了广泛的使用
Android系统中涉及到注解的包共两个 一个是Dalvik.annotations ,该程序包吓得注解不对外开放,仅供和辛苦与代码测试使用,所有的注解声明位于Android系统源码的libcore\Dalvik\src\main\java\Dalvik\annotations 目录下
另一个是Android.annotations 解声明位于Android系统源码的frameworks\base\core\java\Android\annotations
下面详细来看一下
MemberClasses 即是子类成员的集合,通俗来讲就是一个内部类的列表
EnclosingClass 注解表名MainActivity的作用范围
需要注意的是accessFlags 是一个标志位,标明它的属性
另外还有signature 与Throws注解。前者用于验证方法的签名,
如果有抛出异常,则会有Throws注解。
—————————————————————————————————————————————————————我是分割线———————————————————————————————————————————————————————————————————
自动生成的类
看起来就是一堆资源文件。
接下来就是阅读反编译的smali代码了