Jun_25.md

今日任务

  • 以主类为目标尝试新的分析方式

Que 0x01 整理分析的主类

当前分析主类:

com.samsung.android.app.music.common.player.PlayController

整理如图:

PlayController.png

Que 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}

你可能感兴趣的:(Jun_25.md)