git 和adb

一、git

1、git的作用

git是一个版本控制系统,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

        我的理解就是代码管理器:

                        第一点你可将代码备份到git仓上;

                        第二点可记录的你修改记录;

                        第三点可回退版本信息(就是代码修改后,又不想修改了,可回退版本);

                        第四点可多人协调管理代码(将小组的代码汇总到一个远程仓管理)。

2、git的原理

git四个区:Remote(远程仓)、History(本地仓)、Stage(暂存区)和Working(工作区)

        Remote(远程仓):每次小组提交代码托管的地方,供组长管理代码。

        History(本地仓):一个存放在本地的版本库;HEAD 是当前的开发分支(branch)。

        Stage(暂存区):可以把所有的更新放在暂存区;相当于代码提交的缓存区。

        Working(工作区):进行版本控制的目录和文件组成了工作空间;git初始化形成。

3、git命令

# 仓库与配置
$ git init                                  # 新建仓库
$ git clone                                 # 克隆所有代码
$ git config                                # 配置git
$ git config --global user.name "xxxxxx"   #名称设置
$ git config --global user.email xxxxxx@qq.com   #邮箱设置
$ git config --global  --list                     #查看自己git的所有配置信息
$ git config --list --show-origin                 #查看git所有配置及其所在文件


# 文件与代码
$ git add                                  # 将修改的文件添加到暂存区
$ git rm                                   # 删除工作区文件,并将这次删除操作放入暂存区
$ git mv                                   # 改名文件,并将这次改名放入暂存区
$ git commit                               # 将暂存区的文件提交到本地仓库
$ git commit -m 'initial project version'     #快速提交,并给出说明

$ git commit --amend                      #提交修改
$ git clean -df                           #清除未跟踪的文件
$ git clean -dfx                          #将未进入跟踪文件的也清除
$ git cherry-pick commitId                #拉取本地其他分支的提交到当前分支

# 分支
$ git branch                              # 查看所有本地分支
$ git branch -r                           # 查看所有远程分支
$ git branch -a                           # 查看所有本地和远程分支
$ git branch [branch-name]                # 新建分支,但依然留着当前分支
$ git branch -d [branch-name]             # 删除本地分支
$ git branch -dr [branch-name]            # 删除远程分支
$ git checkout [branch-name]              # 切换到指定分支
$ git checkout -b                         # 新建分支,并切换到该分支

# 查看信息
$ git tag                                  # 查看所有tag
$ git status                               # 查看当前仓库下修改的文件
$ git log                                  # 查看当前分支的版本历史
$ git log --shortstat                      #查看patch log
$ git log -p -3 filename                     #显示最近的3次提交
$ git diff                                 # 查看暂存区与工作区的差异

# 分支
$ git branch --set-upstream-to [remote] [branch]     #将本地分支与远程分支关联
$ git fetch [remote]                                 #下载远程仓库的所有修改
$ git remote -v                                      #查看所有远程仓库
$ git pull [remote] [branch]                         #下载远程仓库的修改并与本地分支合并
$ git push [remote] [branch]                         #上传本地分支到远程仓库

# 撤销
$ git checkout [file]                   # 将暂存区的文件恢复到工作区
$ git checkout .                        # 将暂存区的所有文件恢复到工作区
$ git checkout -- .                     # 清空工作区的修改(使用时要注意)
$ git reset                             # 将commit到本地仓库的文件撤回到工作区
$ git revert                            # 撤销分支上指定的commit
$ git reset --hard HEAD~n             # 回退到n个版本
$ git reset --hard FETCH_HEAD        #复位到没有修改的分支代码

二、adb

1、adb的作用

         Android 调试桥 (adb) 是一种功能多样的命令行工具。

        它包含三个组件:客户端、守护程序 (adbd)和服务器 (adb server)。

 客户端:主要用于发送命令,adb client在开发机器上运行,你可以通过发出 adb 命令从命令行终端调用客户端,它主要的工作是:解析push、shell、install等命令的参数,做必要预处理,然后转移为指令或数据,发送给adb server。

守护程序 (adbd):是运行在Android设备(真机/模拟器)后台的一个进程,它是由init进程启动的,并且系统一开机就已经启动,它的主要作用是处理来自 adb server的命令行请求,然后获取对应Android设备的信息,再将结果返回给adb server。

服务器 (adb server):是运行在PC上的一个后台进程。

        它有两个作用:(1)检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止;

                                 (2)将adb client的请求通过usb或者tcp的方式发送到对应的adbd上。

2、adb的原理

通信流程

  1. 通过命令行界面直接或间接的调用某个adb命令,比如adb install或者adb devices。
  2. 这时候adb进程会检查是否启动了adb server。如果未启动,则fork出一个子进程作为adb server,而这个fork出的进程将常驻PC端,监听来自Client端的请求。
  3. adb server查找当前连接的真机或者模拟器,并接收来自Client端发出的请求。
  4. adb server处理请求:如果是本地能直接处理的请求比如:adb devices就直接处理,如果是本地处理不了的请求就会转发给连接的真机或者模拟器来进行处理,可以通过数据线和TCP/IP的方式通信。
  5. 位于真机或者模拟器后台的adbd进程接收到请求后,通过JDWP协议转发给对应的Java虚拟机进程处理。
  6. adbd将处理后的结果返回给adb server。
  7. adb server再将结果返回给Client,这时候我们就在命令行界面中看到展示结果了。adb server再将结果返回给Client。

3、adb的命令

#查看信息
$ adb start-server     #开启adb服务
$ adb kill-server       #停止服务
$ adb devices         #查看设备信息
$ adb version         #查看adb版本
$ adb help            #adb帮助文档
$ adb get-state       #查看设备状态 device(正常连接),offline(连接异常),unknown(没有连接)
$ adb get-devpath     #获取设备路径

#常用命令
$ adb shutdown          #设备关机
$ adb reboot            #设备重启
$ adb root              #获取root权限
$ adb remount           #获取读写权限
$ adb unroot            #取消root权限
$ adb connect    192.168.3.142:5555   #远程连接即无线调试 必须在同一个网关下
$ adb disconnect 192.168.3.142:5555   #断开链接
$ adb install packsge(包路径)           #安装,但不覆盖
$ adb install -r packages(包路径)        #保留数据及缓存文件安装新包(覆盖安装)
$ adb shell pm install /scard/Download  #安装在手机上的apk
$ adb install E:/aa.apk                  #安装在电脑上的apk
$ adb push C:\Users\Administrator\Desktop\1.gif /sdcard/    #push 电脑文件拉向手机
$ adb pull /sdcard/1.gif C:\Users\Administrator\Desktop\     #pull 手机文件拉向电脑
$ adb shell "pm list packages | grep ls"                      #查找ls软件包
$ adb uninstall com.ls                                      #卸载ls的APP

#间接操作
$ adb shell screencap /sdcard/1.png                        #当前窗口截屏保存到手机
$ adb exec-out screencap -p > 1.png                        #截图保存到电脑
$ adb shell screenrecord > 1.mp4                           #屏幕录像,Ctrl+c停止录制

#adb查看应用
$ adb shell pm list packages                               #所有应用
$ adb shell pm list packages -s                            #系统应用
$ adb shell pm list packages -3                            #三方应用
$ adb shell pm list packages | findstr setting              #过滤应用   这个find
$ adb shell pm clear                                      #清除应用数据和缓存

#连接方式
$ adb tcpip 5555                                        #设置监听TCP/IP的端口(端口号5555)
$ adb connect 192.168.1.199 (Android设备IP地址)       #无线连接手机
$ adb usb                                              #使用回usb调试 (有线连接)

#日志
$ adb logcat#查看日志
$ adb logcat -v time #打印详情日志,会记录当前的所有操作行为以及产生的结果,默认持续监听,按下Ctrl+c即可结束
$ adb logcat -v time > D:\log.txt #保存日志到电脑
$ adb logcat -f /sdcard/1.txt           #保存日志到手机
$ adb logcat | findstr com.android.bluetooth #保存指定包名的日志
$ adb logcat -c                         #清除之前的日志输出
$ adb logcat | findstr ActivityManager  #查看当前正在运行的Activity
$ adb logcat | findstr Displayed        #查看当前正在运行的Activity
$ adb bugreport                       #查看bug报告
$ adb logcat -b radio                   #无线通讯的日志
$ adb shell dmesg                     #内核日志
$ adb shell service list                 #查看后台services信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/43967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

周训龙老兵参观广西森林安全紧急救援装备演练

7月21日上午,周训龙老兵参观广西紧急救援促进中心在南宁市青秀山举行森林安全紧急救援装备演练,多功能水罐消防车、无人救援机等先进设备轮番上阵,展示了广西应对突发事件的紧急救援速度和水平。广西壮族自治区应急厅不情愿参此次演练活动。 …

Python Flask构建微信小程序订餐系统 (十)

🔥 编辑会员信息 🔥 编辑会员信息可以通过点击会员列表操作,也可以点击会员信息详情点击进行操作 🔥 修改编程会员信息列表布局 🔥 修改 web/templates/member/index.html 文件,添加跳转到编辑会员信息的页面 web/templates/member/set.html 🔥 创建用于会员…

Mybatis单元测试,不使用spring

平时开发过程中需要对mybatis的Mapper类做单元测试,主要是验证语法是否正确,尤其是一些复杂的动态sql,一般项目都集成了spring或springboot,当项比较大时,每次单元测试启动相当慢,可能需要好几分钟&#xf…

OpenCV图像处理-图像分割-MeanShift

MeanShift 1. 基本概念2.代码示例 1. 基本概念 MeanShift严格说来并不是用来对图像进行分割的,而是在色彩层面的平滑滤波。它会中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的的颜色区域,它以图像上任意一点P为圆心&…

优思学院|六西格玛案例分析 - 降低焊接缺陷率

大家都知道六西格玛方法中的控制图有助于监测流程的稳定性和识别特有原因的发生。对流程周期性地采样,当测量结果在控制上限和下限内,而且围绕着一条中心线时,我们就说流程是受控的。注意上述控制上限和下限有别于规范限。 我们来看看一家工…

电脑安装双系统ubuntu18.04+windows后开机直接进入Windows解决方法

电脑型号:联想拯救者Y9000K2021H 系统:Windows11Ubuntu18.04双系统 问题:笔记本安装双系统后,Windows系统下处理word或者看论文;Ubuntu18.04系统安装ros进行机械臂控制等的研究。但最近开机后发现没有系统选项了&#…

知识库数据导出为excel-使用JavaScript实现在浏览器中导出Excel文件

我们智能客服知识库机器人已经开发完成,后端数据库是使用的qdrant向量数据库,但是该数据库并没有导出备份功能,所以我按简单的纯前端实现知识库导出excel数据 使用第三方库(如SheetJS) SheetJS是一个流行的JavaScript库,可帮助处理…

App隐私及合规评估服务

随着移动应用种类和数量呈爆发式增长,APP侵害用户权益事件层出不穷,为规范个人信息的收集使用,打击涉及个人信息违法犯罪行为,我国相继出台多个涉及个人信息保护相关法律法规。与此同时,中央网信办、工信部、公安部、市…

获取大疆无人机的飞控记录数据并绘制曲线

机型M350RTK,其飞行记录文件为加密的,我的完善代码如下 gitgithub.com:huashu996/DJFlightRecordParsing2TXT.git 一、下载安装官方的DJIFlightRecord git clone gitgithub.com:dji-sdk/FlightRecordParsingLib.git飞行记录文件在打开【我的电脑】&am…

Istio Pilot源码学习(二):ServiceController服务发现

本文基于Istio 1.18.0版本进行源码学习 4、服务发现:ServiceController ServiceController是服务发现的核心模块,主要功能是监听底层平台的服务注册中心,将平台服务模型转换成Istio服务模型并缓存;同时根据服务的变化&#xff0c…

OpenHarmony与HarmonyOS联系与区别

目录 1. 背景 2.OpenHarmony 3.HarmonyOS 4.鸿蒙生态 5.OpenHarmony与HarmonyOS的技术上实现区别 1.语言支持 2.SDK 的不同 3.运行调测方式不同 4.对APK的兼容性不同 5.包含关系 6.调试命令 6.何时选择OpenHarmony或是HarmonyOS? 1. 背景 开篇就说“关于…

2023最新谷粒商城笔记之Sentinel概述篇(全文总共13万字,超详细)

Sentinel概述 服务流控、熔断和降级 什么是熔断 当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,**进而熔断该节点微服务的调用,快速返回错误的响应信息。**检测到该节点微服务调用响应正常后恢复调用链路。A服务调用B服…

Spring Security 身份验证的基本类/架构

目录 1、SecurityContextHolder 核心类 2、SecurityContext 接口 3、Authentication 用户认证信息接口 4、GrantedAuthority 拥有权限接口 5、AuthenticationManager 身份认证管理器接口 6、ProviderManager 身份认证管理器的实现 7、AuthenticationProvider 特定类型的…

数字孪生管控系统,智慧园区楼宇合集

智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施,以实现对园区的全面监控、管理和服务的一种建筑形态。通过将园区内设备、设施和系统联网,实现数据的传输、共享和响应,提高园区的管理效率和运营效益,为居…

【Spring Cloud Gateway 新一代网关】—— 每天一点小知识

💧 S p r i n g C l o u d G a t e w a y 新一代网关 \color{#FF1493}{Spring Cloud Gateway 新一代网关} SpringCloudGateway新一代网关💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客&a…

中医药行业如何进行数字化转型?看天津同仁堂谈“有道有术有零代码”

张伯礼院士曾指出,中药制造的现代化水平,还停留在10%左右的阶段。中医药行业,老字号企业,该如何通过数字化焕发新活力? 天津同仁堂通过与伙伴云合作,零代码构建数字化系统,让技术与思维共同成长…

html,css初学

安装VSCODE ,插件&#xff1a;live server &#xff0c;html support html 然后为了更好地理解&#xff0c;请逐步输入&#xff0c;并及时查看效果 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>D…

PCB封装设计指导(十一)画出脚标,极性标识和特殊器件标识

PCB封装设计指导(十一)画出脚标,极性标识,特殊器件标识 定义完pin number之后,就需要画出器件的脚标,极性标识,特殊标识等丝印相关的信息了,这些说明对辅助PCB布局有很好的作用,当然对后续贴片也很有帮助。 如何添加,具体见如下说明 1.脚标一般都用数字表示,silks…

力扣热门100题之和为k的子数组【中等】

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;nums [1,2,3], k 3 输出&#xff1a;2 …

Acwing.898 数字三角形(动态规划)

题目 给定一个如下图所示的数字三角形&#xff0c;从顶部出发&#xff0c;在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点&#xff0c;一直走到底层&#xff0c;要求找出─条路径&#xff0c;使路径上的数字的和最大。 输入格式 第一行包含整数n&#xff0…