今日任务
- 以主类为目标尝试新的分析方式
Que 0x01 整理分析的主类
当前分析主类:
com.samsung.android.app.music.common.player.PlayController
整理如图:
PlayController.pngQue 0x02 OnAirViewPopupListenerImpl
OnAirViewPopupListenerImpl
public OnAirViewPopupListenerImpl(Activity activity, IPlayerController playerController) {
this.mActivity = activity;
this.mPlayerController = playerController;
}
- 实现对 mActivity 和 mPlayerController 的初始化
getAirView
public View getAirView(View v) {
Context context = this.mActivity.getApplicationContext();
switch (v.getId()) {
case R.id.next_btn:
String nextTitle = UiUtils.getTitle(context, this.mPlayerController.getNextUri());
if (nextTitle == null) {
nextTitle = TalkBackUtils.getButtonDescription(context, (int) R.string.tts_next);
}
return UiUtils.getAirTextView(this.mActivity, nextTitle);
case R.id.prev_btn:
String prevTitle = UiUtils.getTitle(context, this.mPlayerController.getPrevUri());
if (prevTitle == null) {
prevTitle = TalkBackUtils.getButtonDescription(context, (int) R.string.tts_previous);
}
return UiUtils.getAirTextView(this.mActivity, prevTitle);
default:
return null;
}
}
- 获取上/下一首歌名,如果获取失败则返回 button 的描述
Que 0x03 关于效率的思考
几个小时的分析中,发现由于不熟悉面向对象编程思想,导致分析效率其实是比较低下的,并且有的地方是靠猜的,不能完全准确,所以决定拿出一部分时间,学习 java、Android 编程,然后按照现在的思路继续分析。
Que 0x04 java 变量精度级别
byte < char < int < long < float < double
- 低精度转高精度:自动转换
- 高精度转低精度:手动转换
//eg:
float a = 100; //低精度转高精度
float b = (double)3.14 //高精度转低精度
(tip:float 类型变量的 f 不能省略,double 的 d 可以省略)
Que 0x05 声明常亮
关键字 final
:
//eg:
final int PI = 3.14159;
Que 0x06 数组
声明
//eg:
int a[];
int[] b;
以上两种皆可。
分配空间
a = new int[7];
(tip:声明和分配可以一步到位:int a[] = new int[7]
)
初始化
int a[] = {1,2,3}
网友评论