自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除