Android--刷机与adb

这篇具有很好参考价值的文章主要介绍了Android--刷机与adb。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Android设备启动流程

二、刷机模式介绍

三、Windows命令行

四、adb介绍与配置

五、常用的adb命令


一、Android设备启动流程

Android就是Linux内核(Kernel)+Java虚拟机(JVM)

Android设备启动就分为两个阶段:

  • Linux启动

1.启动电源以及系统启动:

当电源键按下时引导芯片代码从预定义的地方(固化在ROM)开始执行,加载引导程序BootLoader到RAM中,然后开始执行。

2.引导程序BootLoader:

引导程序(Bootloader)是位于Android操作系统启动之前的一个小程序,其主要作用是将系统操作系统加载到内存中并启动它的运行。

3、Linux内核启动

当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动,当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动init进程。

  •  Android启动

4.init进程启动:

init进程是Android系统中用户空间的第一个进程,进程号是1。初始化和启动属性服务,并且启动Zygote进程。

5.Zygote进程:

创建Java虚拟机并为Java虚拟机注册JNI方法,创建服务器端Socket,启动SystemServer进程。

6.SystemServer进程启动:

启动Binder线程池和SystemServiceManager,并且启动各种系统服务。

7.Launcher启动:

被SystemServer进程启动的AMS会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到界面上。


二、刷机模式介绍

  • 线刷

BootLoader阶段,如果发现按键有特殊的组合,比如音量+键和电源键,就会进入fastboot模式:它是bootloader期间进入的一个特殊阶段,可以通过数据线与电脑连接,然后在电脑上执行一些命令,如刷系统镜像到手机上,fastboot可以理解为实现了一个简单的通信协议,接收命令并更新镜像文件,其它什么也干不了。这种刷机方式称为"线刷"。

  •  卡刷

如果没有按键进入fastboot,bootloader继续执行,如果又发现有特殊的按键组合,则会进入recovery模式:从某种意义来说,这就是一个小型操作系统,和正常启动进入的系统的kernel是一样的,只是init及之后干的事情不同。

在recovery模式下,会加载了部分文件系统,所以才可以读sdcard中update.zip进行刷机,当然,也可以清除cache和用户数据。这种刷机方式称为"卡刷"。

  • 进入fastboot(bootloader) 模式

1.大多数Android手机,可在关机状态下,然后同时按住[电源键]+[音量+]键,大约2-3s后,就可以进入fastboot模式;

2.作为开发者,我们一般在开机状态下可以用adb命令的方式进入:adb reboot bootloader,一般进入后会有"fastboot mode"相关字样。 

如下图所示:

 Android--刷机与adb

  • 在fastboot模式下刷机需要执行的命令 
# 命令格式:
fastboot flash xxx xxx.img
# 如下:
fastboot flash system system.img
fastboot flash boot boot.img
fastboot flash apdp apdp.img
fastboot reboot
  • recovery模式 

1.通过组合键进入recovery;

2.上层应用设置中执行安装/重置/清除缓存等操作进入recovery,OTA升级;

3.Android系统关键组件运行异常,反复重启等特殊情况会自动进入recovery模式。


三、Windows命令行

进入方式有以下两种:

  1. 快捷键(win+R),输入cmd后回车;
  2. 找到”命令提示符“程序。

常用命令:

#1.目录跳转
cd //(同Linux命令cd)
cd .. //进入上级目录
cd /d d: //进入上次d盘所在的目录(或者直接输入:d:)
cd /d d:\ //进入d盘根目录
#2.列出文件
dir //(同Linux命令ls)
#3.查找字符串
findstr //(同Linux命令grep)
#4.其它
md //创建目录(同Linux命令mkdir)
copy //拷贝文件(同Linux命令cp)
del //删除文件(同Linux命令rm)
rd //删除目录(同Linux命令rm -r)
move //移动文件(同Linux命令mv)


四、adb介绍与配置

        Android Debug Bridge,Android调试桥接器,简称ADB。

        ADB是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用)。是我们进行Android开发经常要用的调试工具,它的使用当然是我们Android开发者必须要掌握的;

  • adb命令是如何运行起来的呢? 

        它是一种客户端--服务器程序,包括以下三个组件:

        1.客户端:用于发送命令。客户端在开发机器上运行,可以通过发出adb命令从命令行终端调用客户端。

        2.守护程序(adbd):用于在设备上运行命令,守护程序在每个设备上作为后台进程运行。

        3.服务器:用于管理客户端与守护程序之间的通信,服务器在开发机器上作为后台进程运行。

  • adb环境变量配置分为三步:

        1.右键此电脑,选择属性,再选择系统高级设置;

        2.设置环境变量,在系统变量中双击Path,再点击新建,将adb的路径填写进去;

        3.点击确定后,接下来在cmd窗口中输入adb version进行验证,如下图所示。

Android--刷机与adb

  • 打开设备的adb调试

        要在通过usb连接的设备上使用adb,必须要在设备的系统设置中启动USB调试(位于开发者选项下),非userdebug版本的手机,”开发者选项“默认情况下处于隐藏状态。如需将其显示出来,请依次转到手机的设置 --> 关于手机 -->,多次点击”版本号“,此时会弹出提示:

”已打开开发者选项“,返回上一屏幕,在底部就可以找到开发者选项。(注:”开发者选项“会因设备的不同,在屏幕中的位置和名称也有所不同)


五、常用的adb命令

//1.查看当前连接电脑的设备(如有多台设备连接,需要加-s参数进行选择)
$ adb devices
List of devices attached
emulator-6666 device
emulator-6667 device
$ adb -s emulator-6666 install camera.apk
//2.重启连接成功的设备
adb reboot
//3.将apk安装到已连接的设备上,-r:强制安装,-d:运行版本代码降级,-t:允许安装测试apk
adb install (-r -d -t) <apk-path> 
//4.推送、拉取文件
adb pull <remote-path> <local-path>
adb push <local-path> <remote-path>
//5.root当前的手机并挂载
adb root & adb remount
//6.进行设备或者模拟器的shell,如同进入Linux系统
adb shell
//7.在设备上执行command,command可为任意可执行程序,.exe文件
adb shell [command]
//8.查看手机内属性
adb shell getprop 
//9.查看一个文件,cpu信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/memoinfo
//10.Android系统服务相关的命令(am  pm  input)
//10.1 启动拨号盘
adb shell am start -a android.intent.action.CALL -d tel:10086
//10.2 杀掉一个应用
adb shell am force-stop com.some.package
//10.3 查看com.some.package在手机上的路径
adb shell pm path com.some.package
//10.4 模拟按键,keycode对应设备某些功能
adb shell input keyevent <keycode>
//11.dumpsys:获取在连接的设备上运行的所有系统服务的诊断输出
adb shell dumpsys -l
adb shell dumpsys activity
adb shell dumpsys window
adb shell dumpsys batterystats
adb shell dumpsys meminfo package_name|pid [-d]
//12.logcat,抓取日志
adb shell logcat
// -b <buffer>	指定log类型,如 events、radio。默认是main、system 和 crash 缓冲区集。
adb shell logcat -b radio
// -c, --clear	清除(清空)所选的缓冲区。
adb shell logcat -c
// 只显示包含“tag”字符后的log
adb shell logcat | findstr “tag”	
// 将log保存到文件d:/xxx/log.txt
adb shell logcat > d:/xxx/log.txt	

本文仅是对Android刷机和adb命令的简要介绍,仍有很多细节和深入的内容未能涉及。如果有任何不准确或不完整之处,请随时提出,我将非常感激。文章来源地址https://www.toymoban.com/news/detail-484659.html

到了这里,关于Android--刷机与adb的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android:启动流程

    第一步:启动电源以及系统启动 当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后 执行 第二步:引导程序 引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针 对特定的主板与芯片的

    2023年04月16日
    浏览(39)
  • Android系统启动流程概览

    Boot Rom —— Bootloader —— Linux Kernel —— init进程 —— Zygote进程(dalvik/ art)—— systemServer —— Apps init 进程是Linux系统中,用户空间启动的第一个进程。 创建并挂载一些文件目录 启动属性服务 解析 init.rc 配置文件,启动 Zygote 进程 挂载 seLinux 文件目录,创建seLinux,加载

    2024年02月06日
    浏览(44)
  • Android Activity的启动流程(Android-10)

    在Android开发中,我们经常会用到startActivity(Intent)方法,但是你知道startActivity(Intent)后Activity的启动流程吗?今天就专门讲一下最基础的startActivity(Intent)看一下Activity的启动流程,同时由于Launcher的启动后续和这里基本类似,就记录在一起。注意本章都是基于Android-10来讲解的。

    2024年01月17日
    浏览(47)
  • Android系统启动流程 源码解析

    本文链接:https://blog.csdn.net/feather_wch/article/details/132518105 有道云脑图:https://note.youdao.com/s/GZ9d8vzO 1、整体流程 Boot Room BootLoader idle kthread init init ServiceManager zygote zygote SystemServer app 1、kernel/common/init/main.c 2、andorid.mk-android.bp编译 3、init是用户空间鼻祖 属于C、C++ Framework 1.1 启动源

    2024年02月11日
    浏览(51)
  • Android SystemServer 启动流程分析

    和你一起终身学 习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、SystemServer 启动的服务有哪些 二、SystemServer启动总体流程概述 三、SystemServer 如何启动,是谁启动的? 四、 SystemServer 启动入门 main 方法 五、SystemServer Run 方法初始与启动 六、

    2024年02月13日
    浏览(47)
  • Android启动之生命周期流程

    目录 一、简述 二、启动流程说明(一) 三、启动流程说明(二) 四、ServerThread常用组件的功能介绍 第一步:启动Linux: 1.Bootloader 2.kernel 第二步:Android系统启动:入口为Init.rc(system/core/rootdir) 1./system/bin/servicemanager:Binder守护进程; 2.Runtime; 3.Zygote:app_process/App_main; 4.Start VM;

    2024年02月09日
    浏览(52)
  • 笔记:Android 9系统启动流程

    当电源键按下时,引导芯片代码(汇编指令)会从预定的地方(固化在ROM)开始执行,将引导程序 BootLoader 加载到 RAM中,然后执行 BootLoader 是在 Android 操作系统开始前的一个小程序,主要作用是把系统OS拉起来并运行 位置: bootablebootloader 当 Linux系统被 BootLoader 程序拉起,

    2024年02月14日
    浏览(40)
  • Android Framework 之 启动流程

    Android 系统的启动流程 Android 系统的启动流程可以分为以下几个主要步骤: 引导加载器(Bootloader)启动 :当你打开一个 Android 设备时,首先启动的是引导加载器。引导加载器负责启动 Android 的核心操作系统。 Linux 内核启动 :引导加载器加载并启动 Linux 内核。Linux 内核负责

    2024年02月14日
    浏览(37)
  • Android 11 SystemUI 启动流程

    从表面上看, 我们看到的 状态栏、通知栏、下拉菜单、导航栏、锁屏、最近任务、低电提示 等系统页面都是 SystemUI 的。SystemUI,在源码目录中位于: framework/base/packages 目录下, 可见 SystemUI 和 framework 是关联的, SystemUI 依赖了很多内部 API , 系统资源, SystemUI 编译是要依赖

    2024年02月13日
    浏览(40)
  • Android APP启动流程解析

    Android手机在开机Linux内核启动的时候,会加载system/core/init/init.rc文件,启动init进程,这个是Android特有的初始化程序,主要负责 各种复杂工作 负责开关机画面 文件系统的创建和挂载 启动Zygote(孵化器)进程 启动ServiceManager,它是Binder服务管理器,管理所有Android系统服务 fork

    2024年03月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包