ubuntu连接android 哪些手机可以刷ubuntu
大家好,ubuntu连接android相信很多的网友都不是很明白,包括哪些手机可以刷ubuntu也是一样,不过没有关系,接下来就来为大家分享关于ubuntu连接android和哪些手机可以刷ubuntu的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
详解如何将 Android 手机投屏在 Ubuntu 上
详解如何将Android手机投屏在Ubuntu上
将Android手机投屏到Linux系统是一项实用技巧。本文以Scrcpy软件为例,介绍如何将Android手机投屏至Ubuntu系统。
Scrcpy简介
Scrcpy是一款开源命令行工具,用于通过adb或USB数据线控制Android设备。无需root权限,可实现计算机用户从Linux桌面远程控制Android设备。
Scrcpy主要特点
资源获取对学习技术至关重要。我当年使用的学习资源,现在也免费分享,涵盖Linux、云计算、虚拟化、OpenStack、Docker、K8S、网络、Python、Go等书籍和视频。
安装要求
在Ubuntu上安装Scrcpy的步骤如下:通过默认软件仓库安装或下载源码自行编译。
运行Scrcpy
使用USB连接电脑和安卓设备,执行命令启动Scrcpy。支持命令行参数,可查看详细参数列表。
Scrcpy功能详解
画面设置
-缩小分辨率:调整高度和宽度限制,如将高度和宽度都设为1024,以提升性能。
-修改画面比特率:从默认的8Mbps调整至其他值,如2Mbps。
-限制画面帧率:通过命令限制帧率,仅在Android 10及以上版本被支持。
-画面裁剪:显示设备的部分屏幕,例如仅显示Oculus Go的一只眼睛。
-锁定屏幕朝向:影响录制功能。
屏幕录制
同时实现屏幕镜像与视频录制。在不开启镜像的同时录制画面,捕获“被跳过的帧”。
连接方式
-无线连接:通过adb建立TCP/IP连接,优化性能。
-多设备连接:支持同时显示多个设备画面。
-自动启动连接:使用AutoAdb工具。
- SSH连接:本地adb连接远程adb服务器,远程控制设备。
窗口设置
-标题:自定义窗口标题。
-位置与大小:指定窗口初始位置和大小。
-无边框:关闭窗口边框。
-保持窗口最前:让窗口始终在最前面。
-全屏:直接全屏启动Scrcpy。
-旋转:实时调整窗口显示方向。
其他镜像设置
-只读:关闭对设备的控制。
-显示屏选择:针对多显示屏设备进行镜像。
-保持常亮:防止设备休眠。
-关闭设备屏幕:启动时关闭屏幕。
-渲染超时帧:跳过解码失败的帧。
-显示触摸:在设备上显示触摸点。
-关闭屏保:不默认关闭屏幕保护。
输入控制
-旋转屏幕:使用快捷键MOD+r切换竖屏和横屏模式。
-复制黏贴:自动同步剪贴板内容。
-捏拉缩放:模拟触摸操作。
-文字注入:调整输入偏好,避免键盘问题。
-按键重复:修改按键事件转发。
文件传输
-安装APK:拖放APK文件至Scrcpy窗口。
-文件推送:拖放文件至/sdcard/。
-自定义路径:设置adb路径,覆盖默认路径。
掌握Scrcpy后,即可实现Android手机与Ubuntu系统之间的高效互动与控制,提升工作效率和娱乐体验。
怎样在Ubuntu下安装Android SDK/ADB
Ubuntu电脑安装Android SDK/ADB
第一步,你要下载Linux版Android SDK的安装或文件包,然后你需要从Android SDK Manager内下载Platform Tools
Package
请从Google官方获取Android
SDK安装或文件包,通常情况,你下载的文件名为android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz
请放置Android SDK安装或文件包在你的用户主目录
在你的Ubuntu电脑上打开终端窗口
解压Android SDK文件:
cd~
tar-zxvf android-sdk_r16-linux.tgz
在~/android-sdk-linux/tools字目录,有一个叫做android的可执行文件,尽管名字是android,但它实际上是Android
SDK Manager
运行Android SDK Manager:
./~/android-sdk-linux/tools/android
选择Android SDK
Tools与Android SDK Platform-tools项,点Install
packages安装Platform Tools
Package工具包。包括ADB与Fastboot可执行的文件在内的工具包都会被下载,由于下载的文件较多而需要一定的时间,你能去喝点东西
你下载的Platform Tools
Package工具包文件将位于新创建的~/android-sdk-linux/platform-tools目录
第二步,修改ADB与Fastboot可执行文件的默认PATH路径环境。PATH环境变量可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件内修改,~/.profile文件是读取所有交互式Shell的登录,~/.bashrc文件读取所有非交互式Shell的登录(如sftp),在大多数默认情况下,~/.profile文件导入所有~/.bashrc文件的设置。PATH命令设定的改变必须包括/android-sdk-linux/tools与/android-sdk-linux/platform-tools目录
kevdog的PATH命令设定通过Ubuntu系统内初始的默认编辑器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools
第三步,我们需要为Ubuntu创建udev设备管理规则,从而让设备在通过USB端口连接到电脑时能被正确地识别
将设备连接到电脑,然后执行命令:
lsusb
你会看到类似于下面的输出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd
由于kevdog的设备是Samsung的某款设备,因此你能看到相应的识别信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd
我们来解释下上面的识别信息:
Bus 001 Device
063,设备端的名称是/dev/bus/usb/001/063,即这个信息可以帮助我们确定设备端的名称
04e8,vendorID,即供货商编号
6860,productID,即产品编号
使用设备端的名称/dev/bus/usb/001/063可以让我们查询设备的属性,查询这些属性有时很有必要,因为udev设备管理匹配设备是基于特定标准的。为此,我们需要一个正确的udev设备匹配规则集,这个过程的第一步就是查询能被连接或插入到我们规则集的准则,这可以通过udevadm程序来实现,并且有两种方式现,它们生成的输出信息为我们的设备构建udev设备管理规则:
udevadm查询udev设备管理规则方法1:
udevadm info-q all-n<name of device
node>
根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:
udevadm info-q all-n/dev/bus/usb/001/063
你会看到类似于下面的输出信息:
$ udevadm info-q all-n/dev/bus/usb/001/063
P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-8
N: bus/usb/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/usb/001/063
E: DEVTYPE=usb_device
E:
DRIVER=usb
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=063
E: SUBSYSTEM=usb
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B06501005018
E:
ID_SERIAL_SHORT=0146B06501005018
E: ID_BUS=usb
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我们使用的规则从有E:(E=ENV=Device
Property设备属性值)的行开始
udevadm查询udev设备管理规则方法2:
udevadm info-a-p$(udevadm info-q path
-n<name of device node>)
根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:
udevadm info-a-p
$(udevadm info-q path-n/dev/bus/usb/001/063)
你会看到类似于下面的输出信息:
$ udevadm info-a-p$(udevadm info-q path-n/dev/bus/usb/001/063)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
'/devices/pci0000:00/0000:00:1d.7/usb1/1-8':
KERNEL=="1-8"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="80"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="29"
ATTR{idVendor}=="04e8"
ATTR{idProduct}=="6860"
ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="480"
ATTR{busnum}=="1"
ATTR{devnum}=="63"
ATTR{devpath}=="8"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{avoid_reset_quirk}=="0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="samsung"
ATTR{product}=="Galaxy"
ATTR{serial}=="0146B06501005018"
looking at parent device'/devices/pci0000:00/0000:00:1d.7/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="1403"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
ATTRS{bcdDevice}=="0300"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="480"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="8"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.0.0-14-generic
ehci_hcd"
ATTRS{product}=="EHCI Host Controller"
ATTRS{serial}=="0000:00:1d.7"
ATTRS{authorized_default}=="1"
looking at parent device'/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x27cc"
ATTRS{subsystem_vendor}=="0x103c"
ATTRS{subsystem_device}=="0x3010"
ATTRS{class}=="0x0c0320"
ATTRS{irq}=="20"
ATTRS{local_cpus}=="ff"
ATTRS{local_cpulist}=="0-7"
ATTRS{dma_mask_bits}=="32"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
ATTRS{companion}==""
looking at
parent device'/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
我们使用的规则从有ATTRS(ATTRS=Device
Attributes设备属性)的行开始
不管是ENV,还是ATTRS,我们可以构建一个udev设备管理规则集。规则集的名称可以随意,根据原作者的意图,我们叫做51-android.rules:
你能这样建立规则集文件:
gksu gedit/etc/udev/rules.d/51-android.rules
之后,请在规则集文件中加入相关的规则,以原作者的规则来看,注意是一行一个:
SUBSYSTEM=="usb",
ENV{ID_VENDOR_ID}=="04e8", ENV{ID_MODEL}=="Galaxy", MODE="0666",
SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL_ID}=="6860", MODE="0666", SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860",
ATTR{product}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"
如上面所加的规则,这些规则匹配准则是SUBSYSTEM,
ENV,ATTR,它只会修改设备的模式MODE(0666=rw-rw-rw-)与创建链接于/dev/GalaxyNexus的GalaxyNexus标识。当然,更多的指令可以分配给设备,如插入或移除设备时的执行命令,你能这样指定指令:
ACTION=="add", RUN+="<name of action>"
ACTION==”remove”,
RUN+="<name of action>"
例如,我们要设定设备在插入或弹出时播放一个声音或MP3文件,可以如下指令设定:
ACTION=="add", RUN+="/usr/local/bin/NexusMount.sh"
ACTION==”remove”, RUN+="/usr/local/bin/NexusUnmount.sh"
需要注意的是,每个ACTION指令设定必须在它自己的命令行;目录必须正确;指令可以是多重设定
一旦规则构建完成,我们需要保存/etc/udev/rules.d/51-android.rules规则文件
在你执行规则集前,测试一下通常是一个好主意,因为那样你能很容易地找出编写规则集的错误:
你能使用udevadm工具简单地完成规则集的测试:
udevadm info-q path-n d=<device
name>
根据原作者的设备端名/dev/bus/usb/001/063,测试行为:
udevadm test--action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus""$(udevadm info-q
path-n/dev/bus/usb/001/063)
虽然测试输出行相当长,两行输出信息正确地识别规则集的指令设定:
udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
'GalaxyNexus'/etc/udev/rules.d/51-android.rules:1
一旦你确认了规则集正确,请重启udev设备管理服务:
sudo service udev restart
第四步,退出电脑的登录,然后重新登录回
在设备插入的情况下,执行ADB命令,如确认设备连接:
$ adb devices
你会看到设备识别号信息,根据原作者的设备,它是
0146B06501005018 device
如果你的设备已启动在Fastboot模式,许多设备不启动可能也行,你能执行Fastboot命令,如标准的Fastboot设备:
$
fastboot devices
ubuntu14.04怎么连接安卓手机
ubuntu14.04连接安卓手机方法如下:
提示:在windows下连接android手机需要驱动程序,在linux下却能自动识别,但是还是需要一点点设置。
步骤1、当把usb连接线连上电脑和手机时,手机会弹出一个对话框,这里要在对话框里选择“调试”模式。
步骤2、ubuntu把android手机识别为网卡usb0,在操作手机前,需要设置一个ip地址:
sudo ifconfig usb0 192.168.100.1
步骤3、为了让adb命令控制手机,需要设置环境变量ADBHOST:export ADBHOST=192.168.100.2,然后输入adb shell就可以进入手机的控制台了。
总结:每次插拔usb线的都需要进行上述设置,可把这些命令保存为一个shell文件:
#!/bin/bash
sudo ifconfig usb0 192.168.100.1
export ADBHOST=192.168.100.2
adb kill-server
adb start-server