- 博客(15)
- 收藏
- 关注
原创 android手机Down版本
1.首先是进入到out目录找到有system.img的地方:cd out/target/product/XXXXXX目录下有system.img 2.开始刷机adb reboot bootloadersudo fastboot flash system system.img注意:如果提示找不到应用,得先安装才能使用:sudo apt-get install ...
2019-01-31 09:16:24 4424
原创 echo命令
Shell的echo 指令用于字符串的输出,如:1.普通字符串echo "I am a student"当然双引号也可以忽略,写成:echo I am a student但是建议加上双引号; 2.转义字符要想\n等转义字符有意义,就必须得在前面加上-e:echo -e "I am a student\n"echo "No"上面的输出结果是:I ...
2019-01-30 22:04:40 1450
原创 Activity启动模式源码剖析
前言:之前我们分析过Activity在AMS中的启动流程,当时也简单的说了下Activity的启动模式,现在我们更详细,更全面的解析一下它;启动Activity的时候,Activity.startActivity()方法会将启动流程交给AMS,AMS又将启动交给ActivityStarter处理,关于Activity的启动模式,就在ActivityStarter.startActivity...
2019-01-30 20:08:36 790
原创 状态模式的简单模板
前言:在分析通话过程中声音输出设备切换的时候,我们发现每一种设备,它内部都封装了一套自己的逻辑处理,当我们切换到某一个设备时,就会走相应的流程,这就是典型的状态模式;状态模式简化了if,else的逻辑判断,可维护性大大加强,后期添加功能时也是十分的方便;我们今天就来写个最简单的状态模式的模板,后续再在这个简单的模板上面添加更加复杂的逻辑;还是以CallAudioManager管理所...
2019-01-27 22:27:37 268
原创 adb常用命令以及log抓取
1. 查看设备adb devices //显示连接的设备如果输入adb devices时,显示Mew0115700061AFA no permissions;需要将手机的USB调试设置到传输照片即可;2.查看当前的Activityadb shell dumpsys activity activities此时会显示TaskRecord的消息,在这里面可以...
2019-01-25 19:41:57 3757
原创 UserManager的使用
前沿:在手机的Settings当中,有一项菜单栏是用来管理手机的当前用户的,点开这个菜单栏,会发现系统将手机用户分成了3类,分别是管理员,访客和自定义用户;管理员,访客是系统为我们预设的,自定义用户可由我们自由添加或者删除;并且这些用户是相互可以切换的,每个用户都有与之对应的系统属性;这3类用户用UserManager进行管理,今天我们并不是来分析UserManager,而是看下系统是...
2019-01-25 16:46:19 8782
原创 android音频系统(7):通话过程中的音频输出设备切换
前言:由于通话比较特殊,Android对于通话过程中音频输出设备的切换做了特殊处理,它在上层也是通过切换音频播放状态来完成切换操作的,android用CallAudioState来封装通话过程中的音频播放状态;1.CallAudioState解析CallAudioState的属性CallAudioState.javapublic static final int ROUTE_EA...
2019-01-24 21:26:31 7225
原创 android音频系统(6):AudioService之音频输出通道切换
前言:音频输出的方式有很多种,外放即扬声器(Speaker)、听筒(Telephone Receiver)、有线耳机(WiredHeadset)、蓝牙音箱(Bluetooth A2DP)等,电话免提、插拔耳机、连接断开蓝牙设备等操作系统都会自动切换Audio音频到相应的输出设备上。我们知道,音频输出通道切换有些是系统自动切换的,但是有些自动切换并不是我们想要的,如:音乐App在听歌时,需要...
2019-01-23 11:57:04 18657 6
原创 Activity常用知识总结
前言:从根Activity的启动流程出发,总结下应用层Activity在开发过程中常用到的知识; 还是以"Launcher中启动Settings"为例:1.Launcher暂停也就是ActivityThread.handlePauseActivity():(1)是否由用户主动退出而导致暂停onUserInteraction();onUserLeaveHint();(...
2019-01-17 13:46:55 265
原创 AS常用指令,常用功能,以及常见问题
1.AS常用指令:(1)查找:①Ctrl+shift+N全局查找一个类或者一个文件;②Crtl+F搜索的时候,有几个设置:In Comments only:仅在注释中搜索;In Literals only:仅在文本中搜索,这是我们经常用的;Ctrl+Alt+shift+J 锁定查找到的结果,使用Alt+J,进行下一个结果的查找;使用Alt+Shift+J,逐个取消选...
2019-01-16 19:54:01 1469
原创 开发工具积累
1.Android Studio(1)简介:比较纯净版的Android Studio,解压后,安装路径在Android Studio\bin\studio64.exe;链接: android studio提取码: vbex(2)要想在AS中导入android源码项目,需要添加两个文件:android.iml和android.ipr;链接: AS文件提取码: xuqp(...
2019-01-16 19:47:58 263
原创 Git
前言:平时工作中的代码管理用到了Git,所以就总结下Git;推荐一篇写的很好的关于Git的教程,简单易懂:Git教程 1.把文件添加到版本库git add readme.txtgit add file2.txt file3.txtgit commit -m "wrote a readme file"git add是将修改从工作区提交到暂存区,git commit是将修...
2019-01-16 11:51:11 98
原创 AMS剖析(3):AMS与ActivityThread的交互
前言:前面追溯了Activity在AMS中的启动流程,接下来分析AMS与ActivityThread的交互,并详细讲解Activity的生命周期;还是以"Launcher中启动Settings"为例;1.Launcher.onPause()AMS与ActivityThread的第一次交互就是Launcher的暂停,发生在ActivityStack.startPausingLocke...
2019-01-14 12:56:52 1658
原创 控件属性
前言:在开发过程中我们会经常遇到修改控件属性以及窗口属性的问题,现在就来分析下这些属性;1.先从一个xml布局开始:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:la...
2019-01-04 20:23:20 781
原创 AMS数据结构(1)
1.ActivityStackSupervisor它是一个计算类,所有关于ActivityRecord,TaskRecord,ActivityStack的操作都是在这里面进行;①来看这句代码:ActivityRecord sourceRecord = mSupervisor.isInAnyStackLocked(resultTo);其中,resultTo是IBinder类型,mS...
2019-01-03 20:29:36 562
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人