问题描述:希望本人希望在ubuntu 环境下,对Android系统文件系统及APK进行操作和PC端处理;

问题目的:这样操作的好处,统一命令行操作,可以与ubuntu系统进行命令上交互;

先附上一张图(ubuntu&window),其远程控制Android界面的显示应用的名字及简单介绍~~

1、首先在Android系统(这里使用的oppo手机)打开 ====》开发者,其操作为:点击====》设置====》版本号(版本信息) 点击三次,就进入开发者模式,然后打开====》开发者选项&&====》打开USB调试选项;

2、然后将Android系统的设备(或者Android手机设备)的串口连接上PC的USB端口,同时在ubuntu 环境下安装

sudo apt-get install qt4-qmake libqt4-dev libqtcore4 libqtgui4 android-tools-adb

下载seven-square;

地址:https://github.com/yangh/sevensquare.git

链接:https://pan.baidu.com/s/1R2SrT_gJtV9mdn1G1acK4w 密码:nk0x

解压之后,进入文件夹执行以下命令~~

 cd sevensquare/make./build/seven-square

然后就可以在PC端操作Andriod系统设备,如打开摄像头,获取图像等;

当然也可以使用图表提供的其它apk;( 使用airDroid软件授权,显示的Android页面及其应用, 但是似乎airDroid 显示的应用并不全面~~~)

完成了Android的界面在Ubuntu上投射~~~

第二步,希望PC端和Android进行数据交换(类似ssh一样),可以跳过直接看第三步,使用adb shell

3、首先在Android 终端,安装SSHDroid(链接:https://pan.baidu.com/s/15uzapXN6dkH47D2VTn71PQ 密码:9w8o)

之所以使用SSHDroid的目地在于他可以控制开机自动启动,在无wifi情况下,插上网线,就可以完成远程使用网口进行操控Android(在获知IP情况下才可以~~~)

在wifi开启的情况下,启动SSHDroid终端(在seven-square端完成即可~~),查看到IP地址及端口号~~

4、然后在ubuntu 终端输入链接命令:

ubuntu@ubuntu:~$ ssh -p 2222 root@172.22.2.55
SSHDroid
Use 'root' as username
Default password is 'admin'
root@172.22.2.55's password:
u0_a1118@R9s:/data/data/berserker.android.apps.sshdroid/home $

就完成了对Android系统设备的图形化界面访问和文件系统访问;

同时:希望在linux终端界面使用使用命令控制Andriod的应用,如打开应用 关闭应用;

5、若在SSHDroid链接的终端情况下:

-----@------:/data/app # pm list package                                                               <
package:com.mediatek.gba
package:com.mediatek.ims
package:com.mediatek.ppl
package:org.simalliance.openmobileapi.uicc2terminal
package:com.android.providers.telephony
package:com.mediatek.camera
package:com.android.providers.media
package:com.mediatek.fwk.plugin
package:com.mediatek.FactoryTest
package:com.mediatek.schpwronoff
package:org.simalliance.openmobileapi.service
package:com.android.galaxy4
package:com.android.externalstorage
package:com.android.htmlviewer
package:com.android.mms.service
package:com.android.providers.downloads
package:com.mediatek.engineermode
package:com.mediatek.omacp
package:com.android.providers.applications
package:com.mediatek.wfo.impl
package:com.trechina.smartphonecamera
package:com.android.defcontainer
package:com.android.providers.downloads.ui
package:com.android.pacprocessor
package:com.android.certinstaller
package:com.android.carrierconfig
package:com.sand.airdroid
package:android
package:com.trechina.monitor
package:com.android.launcher3
package:com.android.backupconfirm
package:com.android.provision
package:com.android.statementservice
package:com.android.wallpaper.holospiral
package:com.android.phasebeam
package:com.mediatek.providers.drm
package:com.koushikdutta.vysor
package:com.android.providers.settings
package:com.mediatek.miravision.ui
package:berserker.android.apps.sshdroid
package:com.android.sharedstoragebackup
package:com.mediatek.batterywarning
package:com.android.printspooler
package:org.simalliance.openmobileapi.uicc1terminal
package:com.mediatek.datatransfer
package:android.androidVNC
package:com.android.webview
package:com.android.inputdevices
package:com.mediatek
package:com.android.onetimeinitializer
package:com.android.server.telecom
package:com.android.keychain
package:com.shenyaocn.android.WebCam
package:com.android.gallery3d
package:com.mediatek.hetcomm
package:com.android.calllogbackup
package:com.android.packageinstaller
package:com.svox.pico
package:com.android.proxyhandler
package:com.android.inputmethod.latin
package:com.android.managedprovisioning
package:com.mediatek.calendarimporter
package:com.mediatek.atci.service
package:com.android.dreams.phototable
package:com.mediatek.thermalmanager
package:com.android.noisefield
package:com.sonelli.juicessh
package:com.mtk.telephony
package:com.android.wallpaper.livepicker
package:com.baidu.map.location
package:com.dtinfo.tools
package:com.android.settings
package:com.google.android.inputmethod.pinyin
package:com.webkey
package:com.android.wallpaper
package:com.android.vpndialogs
package:com.android.phone
package:com.android.shell
package:com.android.providers.userdictionary
package:org.simalliance.openmobileapi.eseterminal
package:com.android.location.fused
package:com.android.systemui
package:com.android.exchange
package:com.android.bluetoothmidiservice
package:com.mediatek.filemanager
package:com.mediatek.mtklogger
package:com.android.bluetooth
package:com.trechina.smartphonecameraupdate
package:com.android.captiveportallogin

然后找到相机的开发包名字,并执行;

130|-----@--------:/data/data/berserker.android.apps.sshdroid/home # dumpsys package com.mediatek.camera
activity Resolver Table:Non-Data Actions:android.media.action.IMAGE_CAPTURE:61ae802 com.mediatek.camera/com.android.camera.CaptureActivityandroid.media.action.IMAGE_CAPTURE_SECURE:879e903 com.mediatek.camera/com.android.camera.SecureCameraActivityandroid.intent.action.MAIN:c290ec4 com.mediatek.camera/com.android.camera.CameraActivityf9331ad com.mediatek.camera/com.android.camera.CameraLauncherandroid.media.action.STILL_IMAGE_CAMERA:c290ec4 com.mediatek.camera/com.android.camera.CameraActivityandroid.media.action.STILL_IMAGE_CAMERA_SECURE:879e903 com.mediatek.camera/com.android.camera.SecureCameraActivityandroid.media.action.VIDEO_CAPTURE:7768a62 com.mediatek.camera/com.android.camera.VideoCameraandroid.media.action.VIDEO_CAMERA:7768a62 com.mediatek.camera/com.android.camera.VideoCameraReceiver Resolver Table:Non-Data Actions:android.intent.action.BOOT_COMPLETED:f4f1363 com.mediatek.camera/com.android.camera.DisableCameraReceiver

最后就可以启动相机了~~~

root@AiCamera:/data/data/berserker.android.apps.sshdroid/home # am start -n com.mediatek.camera/com.android.camera.CaptureActivityStarting: Intent { cmp=com.mediatek.camera/com.android.camera.CaptureActivity }

然后相机就完美的通过命令启动了~~~

第三步:其实Android系统中的adb shell 可以完成第二步的所有事情,如安装apk、链接等(可自行搜索);

同理adb shell 命令也可以完成操作(在ubuntu 终端操作)

adb shell ifconfig // 查看Android Ip地址
adb shell install name.apk //安装apk软件
adb shell pm list package //安装包列表
adb shell dumpsys package com.mediatek.camera //寻找相机活动名
adb shell dumpsys package com.shenyaocn.android.WebCam // 寻找IP摄像头
adb shell am start -n com.mediatek.camera/com.android.camera.CaptureActivity //打开相机
adb shell am start -n com.shenyaocn.android.WebCam/.Activities.WebCamActivity //打开IP相机

例如:比如本人需要使用的IP camera app;

因为需要控制具体的app的应用操作;首先需要知道应用的控件的位置坐标,  需要在"开发者选项"->"指针位置"即可,然后定位需要操作的控件坐标;(在seven-square端完成即可~~)

1、首先回到Home主界面;

adb shell input keyevent 3

2、打开APP应用 IP Camera;搜索包名字(详细见第二步)

adb shell am start -n com.shenyaocn.android.WebCam/.Activities.WebCamActivity

根据预先打开的指针坐标值,触摸屏幕发现其打开摄像头的软按钮的坐标为 1000 1000(需要在Android系统的界面上获得,seven-square终端不支持获取)

adb shell input tap  1000 1000

然后完美的控制APP应用~~~~

ubuntu@ubuntu:~$ adb shell input tap  1000 1000 // 打开IP摄像头
ubuntu@ubuntu:~$ adb shell input tap  1515 584  // 确定打开
ubuntu@ubuntu:~$ adb shell input tap  33 62    // 退出IP摄像头
ubuntu@ubuntu:~$ adb shell input tap  1515 584  // 确定退出
ubuntu@ubuntu:~$ adb shell input tap  1097 412  //关闭烦人的广告

0ppo R9 对于IP Camera 操作~~~

ubuntu@ubuntu:~$ adb shell input tap  606 1847 //.打开IP摄像机
ubuntu@ubuntu:~$ adb shell input tap  889 1164 // 确认打开IP相机
ubuntu@ubuntu:~$ adb shell input tap  87 142   //退出IP相机
ubuntu@ubuntu:~$ adb shell input tap  889 1164 //确认退出IP相机
ubuntu@ubuntu:~$ adb shell input tap  928 654 //关闭广告

然后我基于本人机型OPPO R9 写了一个Opencv 远程调用代码;在通过串口进行初始化之后,然后就可以远程调用

# -*- coding: UTF-8 -*-
import os
import cv2
# 实验机型为OPPR9 触摸键的坐标选择对应该机型,同时禁止屏幕自动翻转~~~
os.system("adb shell input keyevent 3")  #复位键
os.system("adb shell am start -n com.shenyaocn.android.WebCam/.Activities.WebCamActivity")
#os.system("adb shell input tap  928 654")   # 关闭广告 因为使用的软件总产生广告,可多操作一次,
os.system("adb shell input tap  606 1847") # 打开Ip摄像机a
os.system ("adb shell input tap 877 1360") #防止误操作
os.system ("adb shell ifconfig |grep Mask >.Android_IP_Adress")
fp = open(".Android_IP_Adress", "r")
sample = fp.readlines()
Android_ip=sample[0].split()[1].split("addr:")[1]
os.remove(".Android_IP_Adress")
Port=":8081"
Service="http://"
Admin_passwd="admin:admin@"
url =  Service+Admin_passwd+Android_ip+Port
print url
cap = cv2.VideoCapture(url)
while True:ret,frame = cap.read()frame=cv2.flip(frame,0)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()
cv2.destroyAllWindows()
#os.system("adb shell input tap  884 1159")   #退出IP摄像机
#os.system("adb shell input tap  87 142")   #退出IP摄像机
#os.system("adb shell input tap  889 1164")  #确认退出摄像机
#os.system("adb shell input tap  928 654")   # 关闭广告

当Android 存在以太网口时,首先需要串口获取到以太网口的ip地址

adb shell getprop dhcp.eth0.ipaddress
或者adb shell getprop

注意:使用下列命令并不显示以太网的地址信息~~~

adb shell ifconfig |grep Mask

然后可以拔掉串口,转而使用ssh 链接即可~~~

具体的adb 命令请参考:https://github.com/mzlogin/awesome-adb

9、Ubuntu控制Android系统设备(Android手机)应用(图形化界面和访问文件系统及启动App)相关推荐

  1. python拿什么做可视化界面好-用python打造可视化爬虫监控系统,酷炫的图形化界面...

    原标题:用python打造可视化爬虫监控系统,酷炫的图形化界面 本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 ...

  2. python中turtle画酷炫图案-用python打造可视化爬虫监控系统,酷炫的图形化界面

    本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来 ...

  3. python做炫酷的界面_用python打造可视化爬虫监控系统,酷炫的图形化界面

    安装 InfluxDB 修改配置文件/usr/local/etc/influxdb.conf,如果原文件中没有对应配置项,需自己添加. 3. 安装配置 Grafana 安装 Grafana 并修改 G ...

  4. ubuntu 无法进入startx_Ubuntu无法进入图形化界面(报错/dev/sda1:clean的解决)

    进入命令行模式,执行下面的命令: rm -rf /etc/X11/xorg.conf cp /etc/X11/xorg.conf.failsafe /etc/X11/xorg.conf 重启电脑. 上 ...

  5. 苹果系统anaconda没有图形化界面怎么解决?

    苹果系统anaconda安装完没有图形化界面怎么解决? 安装命令 conda install anaconda-navigator 安装很快,成功: 参考 知乎:Anaconda navigator怎 ...

  6. 【android系统】android系统升级流程分析(一)---recovery模式中进行update包升级流程分析

    今天我们直接来看下android中具体的升级过程是如何的. 升级流程概述 升级的流程图: 升级流程分析 第一步:升级包获取 升级获取可以通过远程下载,也可直接拷贝到指定目录即可. 第二步:准备升级 然 ...

  7. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  8. android 服务端技术,移动应用服务器端开发(基于JSP技术)-2017 Android系统构架 Android系统构架.docx...

    Android系统构架 PAGE 1 目 录 TOC \o "1-3" \h \z \u 一.Android系统构架 1 二.Linux内核层 2 三.系统运行库层 3 (一)系统 ...

  9. 【android系统】android系统升级流程分析(二)---update升级包分析

    接下来我们将通过几篇文章来分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.今天让我先来分析下升级包update.zip. 一 ...

  10. android界面布局题,【填空题】Android 系统中, 用于定义布局显示在界面上的风格。...

    [填空题]Android 系统中, 用于定义布局显示在界面上的风格. 更多相关问题 [37]A.anotherB.each otherC.the otherD.one another Tabor ma ...

最新文章

  1. 初学者怎么学单片机,嵌入式单片机培训机构有用吗?
  2. 国内首家!携程每周两天可在家“躺平”,76% 的员工主动报名
  3. linux通过rinetd工具进行端口映射/转发/重定向
  4. 部署时服务端Excel的COM设置
  5. rewrite.php wordpress 缓存 固定连接,【转】Wordpress中文标签无法正常连接 - 完美解决方案...
  6. PowerShell字体颜色修改
  7. 64. Minimum Path Sum
  8. Python教程:Python中的for 语句
  9. 动态规划——乘积最大子数组(Leetcode 152)
  10. POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )
  11. IT人的地摊不就是开源么 | 凌云时刻
  12. 高德地图哪个语音包最好_用高德地图录制语音包,听自己的声音导航更有个性...
  13. c语言第九章课后作业答案,c语言第九章习题带答案
  14. Mybatis学习 association关联 和 collection集合
  15. 【a标签的使用和属性】
  16. ArcGIS中地表径流
  17. Yapi环境搭建(史上最详细步骤)
  18. 一些OpenGL 问题记录
  19. GYM 102439 Equal Mod Segments
  20. windows 强制登录远程桌面

热门文章

  1. 《Arduino》开发 之 用 u8g2 库 给 0.96寸OLED 刷bmp图片,OLED图片取模
  2. Windows下有关(下载与播放)软件
  3. wo-mic ,audioRelay设置
  4. linux下海康威视MVS以及库的安装
  5. 激励机制:区块链的幕后英雄
  6. 《应用时间序列分析:R软件陪同》——2.6 MA 模型
  7. 易语言版{大智慧/分析家/飞狐交易师}DLL插件接口开发模块(beta5),自定义股票软件公式扩展函数
  8. 拼多多流量不精准是什么原因?怎么提高点击?
  9. 通信技术专业技术人员考试 动力与环境_建筑信息模型专业技术人员等级认定培训考试项目介绍...
  10. html日期选择器小日历样式,9 款样式华丽的 jQuery 日期选择和日历控件