我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android--刷机与adb

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android--刷机与adb

目录

一、Android设备启动流程

二、刷机模式介绍

三、Windows命令行

四、adb介绍与配置

五、常用的adb命令


一、Android设备启动流程

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

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

  • Linux启动

启动电源以及系统启动:

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

引导程序BootLoader:

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

Linux内核启动

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

  •  Android启动

init进程启动:

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

Zygote进程:

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

SystemServer进程启动:

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

Launcher启动:

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


二、刷机模式介绍

  • 线刷

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

  •  卡刷

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

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

  • 进入fastboot(bootloader) 模式

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

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

如下图所示:

 

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

通过组合键进入recovery;

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

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进行验证,如下图所示。

  • 打开设备的adb调试

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

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


五、常用的adb命令

//1.查看当前连接电脑的设备(如有多台设备连接,需要加-s参数进行选择)$ adb devicesList of devices attachedemulator-6666 deviceemulator-6667 device$ adb -s emulator-6666 install camera.apk//2.重启连接成功的设备adb reboot//3.将apk安装到已连接的设备上,-r:强制安装,-d:运行版本代码降级,-t:允许安装测试apkadb install (-r -d -t)  //4.推送、拉取文件adb pull  adb push  //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/cpuinfoadb 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 //11.dumpsys:获取在连接的设备上运行的所有系统服务的诊断输出adb shell dumpsys -ladb shell dumpsys activityadb shell dumpsys windowadb shell dumpsys batterystatsadb shell dumpsys meminfo package_name|pid [-d]//12.logcat,抓取日志adb shell logcat// -b 指定log类型,如 events、radio。默认是main、system 和 crash 缓冲区集。adb shell logcat -b radio// -c, --clear清除(清空)所选的缓冲区。adb shell logcat -c// 只显示包含“tag”字符后的logadb shell logcat | findstr “tag”// 将log保存到文件d:/xxx/log.txtadb shell logcat > d:/xxx/log.txt

本文仅是对Android刷机和adb命令的简要介绍,仍有很多细节和深入的内容未能涉及。如果有任何不准确或不完整之处,请随时提出,我将非常感激。

来源地址:https://blog.csdn.net/weixin_44715733/article/details/130748453

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android--刷机与adb

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

[全解] 刷机, BL 锁, Bootloader, Recovery, Magisk, Root, ADB, 线刷, 卡刷, 9008, 绕过 FRP

这篇文章讲解手机刷机, Root 的教程, 以及过程中可能遇到的大多数问题. 你可能需要对电脑重装系统有些了解, 知道分区, 设备, 驱动是什么东西, 并且能够熟悉使用电脑, 以及在命令窗口中执行命令 概述 手机刷机, 当然也可以说成
2023-08-21

android手机端与PC端使用adb forword通信

PC端与Android手机端使用adb forword通信 服务器端代码如下:import java.io.IOException; import java.io.ObjectOutputStream; import java.net.
2022-06-06

Android在linux下刷机教程

只需要下载相应的zip包,不需装什么手机助手。 1、下载相应zip包(ROM) http://download.mokeedev.com/ 比如我在上述网站下的魔趣的对应机型的ROM包。 2、linux下载adb 直接一条命令:apt-ge
2022-06-06

Android手机刷机知识小总结

其实安卓手机都是大同小异,刷机好去客服哦,不然刷成板砖没人负责。本教程只是对Android手机刷机知识的普遍总结,所有的Android手机都可以参考。现在的刷机方法很多,而且不一样的手机刷机方法不一样。下面的小总结仅供参考。1、什么是roo
2022-06-06

adb查看android虚拟机的数据库

adb是Android SDK中自带的一个调试工具,使用这个工具可以直接对连接在电脑上的手机或者模拟器进行调试操作。它存放在sdk里的platform-tools目录下,如果想在命令行中使用这个工具,需要先把它的路径配置到环境中。首先我么先
2022-06-06

adb wireless进行Android手机调试详解

ADB(Android Debug Bridge)是一种用于在Android设备和计算机之间进行通信和调试的工具。而ADB Wireless是一种通过无线网络连接进行ADB调试的方法,可以使Android手机与计算机之间无需使用USB线进行
2023-08-14

adb wireless进行Android手机调试怎么实现

要通过 ADB 无线进行 Android 手机调试,您可以按照以下步骤操作:首先,通过 USB 连接将您的 Android 手机连接到计算机,并确保已经启用了 USB 调试模式。您可以在手机的开发者选项中找到 USB 调试选项并启用它。打
adb wireless进行Android手机调试怎么实现
2024-03-06

KaliLinuxNetHunter教程刷入第三方Recovery与开始刷机

KaliLinuxNetHunter教程刷入第三方Recovery与开始刷机2.刷入第三方Recovery(即TWRP)TWRP(TeamWin Recovery Project)是一款XDA大神开发的一款全触屏操作的第三方Recovery
2023-06-05

Android View刷新机制实例分析

本文实例讲述了Android View刷新机制。分享给大家供大家参考,具体如下: 一、总体说明 在Android的布局体系中,父View负责刷新、布局显示子View;而当子View需要刷新时,则是通知父View来完成。 二、代码分析 1).
2022-06-06

Android 动态分区详解(七) overlayfs 与 adb remount 操作

0. 导读 最开始学习 Android 动态分区源码的时候,比较代码发现 system/core/fs_mgr 目录下多了一个名为 fs_mgr_overlayfs.cpp 的文件,一直不知道什么时候会用到 overlayfs。 后来在
2023-08-18

说说Android的UI刷新机制的实现

本文主要解决以下几个问题:我们都知道Android的刷新频率是60帧/秒,这是不是意味着每隔16ms就会调用一次onDraw方法?如果界面不需要重绘,那么16ms到后还会刷新屏幕吗?我们调用invalidate()之后会马上进行屏幕刷新吗?
2022-06-06

adb forword通信怎么在android移动端与PC端中使用

这篇文章给大家介绍adb forword通信怎么在android移动端与PC端中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。PC端与Android手机端使用adb forword通信服务器端代码如下:import
2023-05-31

Android的RV列表刷新详解Payload与Diff方式异同

这篇文章主要为大家介绍了Android的RV列表刷新详解Payload与Diff方式异同,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录