Jun_25.md

作者: 深蓝Yearth | 来源:发表于2018-06-25 18:16 被阅读0次

    今日任务

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

    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

          本文链接:https://www.haomeiwen.com/subject/tetuyftx.html