美文网首页
工作杂记

工作杂记

作者: xlq | 来源:发表于2018-02-26 11:17 被阅读0次
    1. 从源码根目录给每个仓库建立branch命令:
      repo start 分支名 --all

    2. 查看提交记录(单行显示):
      git log --oneline
      library

    3. 撤销节点之后的所有提交:
      git reset --hard _______

    4. 搜索(不区分大小写):
      grep -rn "___" *

    5. MTKLogger暗码 :
      ##3646633##

    6. 导出Log的命令:
      adb pull sdcard/mtklog ./文件名

    7. 用于删除编译出来的.o之类的文件 :
      git clean -xfd (或) git clean -f

    8. 录制屏幕命令(保存在sdcard/中):
      adb shell screenrecord /sdcard/test.mp4

    9. 搜索相关字样的进程:
      ps -aux | grep -ri _____

    10. Android studio 主题下载网址:
      http://color-themes.com/

    11. 自学android资料库:
      https://123.w3cschool.cn/navandroid_study

    12. 手机插线不充电:
      adb shell dumpsys battery unplug

    13. 查看IMEI号 : *#06#

    14. CTS测试环境下载:
      https://source.android.com/compatibility/cts/downloads

    15. 查看手机当前进程:
      adb shell ps | grep ____

    16. git完全教程:
      http://www.yiibai.com/git/

    17. 单跑某个模块Monkey:
      adb shell monkey -p 包名 --throttle 500 -v 99999

    18. svn 更新文件:
      svn up 或 svn update

    19. svn 提交文件:
      1.进入到最近的目录;
      2.svn add + 文件名;
      3.svn commit + 文件名 + -m "备注信息"

    20. 修改文件夹权限 :
      sudo chmod -R 777 *

    21. windows系统查看对方共享目录:
      运行 > \ip地址 > Enter

    22. 获取手机内部存储的路径:

    Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "***"
    
    1. 打开Log的指令:
      adb shell am start com.qualcomm.qti.logkit/.cActivity

    2. 查看手机属性:
      adb shell getprop (ro.build.type的值显示什么版本)

    3. 修改屏幕分辨率指令:
      adb shell wm size 1080x1920

    4. 将Jar包导入Android Studio bu步骤 :
      (1) 将jar包拷贝到app > libs 下(没有libs就新建)
      (2) 右键该jar包,选择Add as library
      (3) OK

    5. git完全教程:http://www.yiibai.com/git/

    6. Android系统的分区:

    boot: 用于系统启动的分区,主要包括kernel和ramdisk。主要用于挂载System和其他分区,并加载System分区的代码。没有该分区,手机无法启动;

    system:该分区包含除了kernel和ramdisk之外的系统应用程序和库文件;正常操作情况下,该分区是只读状态。

    recovery: 用于系统升级打补丁,包含了一个完整的Linux操作系统和一个特殊的recorvery包。FOTA升级时,下载完更新包后,进入recovery模式,recovery程序会读更新包,然后将各个patch应用到各个分区;

    misc:升级时,recovery用于存储相关信息的小分区;

    data:主要包含了用户的数据,如联系人、短信、设置以及安装的应用。清除该分区等同于将手机重置,OTA不会影响该分区;

    cache:用于存放需要经常访问使用的数据和应用组件,访问该分区需要特殊的应用程序权限;OTA升级时下载的升级包就位于该分区;

    1. 获取按键键值:
      adb shell
      getevent -ltr

    2. 在手机charging模式时,Linux识别不到手机端口,此时需要配置51-android.rules文件,方法:
      (1)连接手机,命令:lsusb,找到手机的端口ID;
      (2)打开 文件系统-etc-udev-51-android.rules 文件(需要sudo权限);
      (3)按照次序填好端口ID,例如:SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="9020", MODE="0666", OWNER="gsoft2-3";
      (4)重新插拔手机,就能找到端口了。

    3. 当debug版本remount不上,显示报错:
      remount of /system failed: Read-only file system
      remount failed
      使用命令:adb disable-verity 执行一下重启

    4. 查看系统属性:
      adb root;adb remount;adb shell
      getprop (对应的string)
      或者:adb pull /system/build.prop . 将整个系统属性文件pull出来
      或者:/out/target/product/***/system/build.prop 直接查看

    5. 不支持分屏的方案:
      一般在onResume()方法中添加:

    if (isInMultiWindowMode()){
        super.onResume();
        Log.v(TAG, "onResume: Don't support split screen !");
        Toast.makeText(this, getString(R.string.dock_non_resizeble_failed_to_dock_text), Toast.LENGTH_SHORT).show();
        finish();
        return;
    }
    
    1. 获取别的应用的字串:
    Context ctx = null;
        try {
            ctx = getContext().createPackageContext("com.android.systemui",
            Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
        } catch (Exception e) {
                Log.w(TAG, "name not found " + e);
        }
        if (ctx != null ){
            int resId = -1;
            resId = ctx.getResources().getIdentifier(
                "dock_non_resizeble_failed_to_dock_text", "string",
                ctx.getPackageName());
            Toast.makeText(this, ctx.getResources().getString(resId), Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, getString(R.string.dock_non_resizeble_failed_to_dock_text), Toast.LENGTH_SHORT).show();
        }
    }
    
    1. 打 Patch命令:

      1. 将patch 文件放在模块根目录;
      2. git apply ***.patch --reject;
      3. 如有冲突,会有.rej文件生成,根据.rej文件,手动合入
    2. 将某笔提交打成patch包指令: git format-patch commit_previous..commit

    3. 打印代码的堆栈信息:

        RuntimeException e = new RuntimeException("here");
        e.fillInStackTrace();
        Log.i("xlq", "Exception", e);
    
    1. 用命令启动某个Activity:
      adb shell am start -n packageName/className;

    2. 阿里云仓库: http://maven.aliyun.com/mvn/search

    3. androidMVC框架和MVVM,MVP对比介绍:
      https://juejin.im/post/58f460b18d6d810057b75bbb

    4. android Rxjava2的学习:
      https://www.jianshu.com/p/464fa025229e

    5. android常用的15个框架
      https://blog.csdn.net/congmingyizhiha/article/details/70011020

    6. 部分网络接口:
      http://www.bejson.com/knownjson/webInterface/

    7. 获取手机activity的启动event:
      adb logcat -b events

    8. 四种启动模式:
      standard:默认启动,每次启动都会新建一个实例,位于栈顶;
      适用场景:普通Activity;

    singleTop:栈顶复用,如果要启动的activity处于栈顶,则不用重新创建,直接复用,走onNewIntent()方法,不走onCreate() 和 onStart(),否则和standard一样;
    适用场景:点击Notification启动的页面;

    singleTask:栈内复用,如果栈内有,直接复用,并且将其置于栈顶,将上方其他的activity pop出栈;走onNewIntent()方法,不走onCreate() 和 onStart();
    适用场景:适用于浏览器主界面,多个应用启动浏览器,都只创建第一次,其他都走Activity的onNewIntent()方法。 或者适用于其他应用程序的入口;

    SingleInstance:全局单例模式,基本与singleTask一样,区别在于,activity只能单独位于一个任务栈中。(比较特殊,用得少)
    适用场景:完全独立的,类似闹钟的提示

    相关文章

      网友评论

          本文标题:工作杂记

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