当前位置: 首页 > news >正文

我公司是做网站开发的怎么纳税汕头seo计费管理

我公司是做网站开发的怎么纳税,汕头seo计费管理,龙华专业网站建设,网站建设与管理适合男的还是女的flutter开发实战-安卓apk安装、卸载、启动实现 在之前的文章中,实现了应用更新apk下载等操作,具体文档看下 这里记录一下使用shell来操作apk的安装、卸载、启动的操作。用到了库shell,Shell用于在Dart中或在代表其他用户执行系统管理任务的…

flutter开发实战-安卓apk安装、卸载、启动实现

在之前的文章中,实现了应用更新apk下载等操作,具体文档看下

这里记录一下使用shell来操作apk的安装、卸载、启动的操作。用到了库shell,Shell用于在Dart中或在代表其他用户执行系统管理任务的应用程序中编写shell实用程序脚本。

一、在pubspec.yaml中引入shell

在pubspec.yaml中引入shell

dependencies:shell: ^2.0.0

二、shell简介

Shell是dart:io〔Process〕API上的包装器以便支持环境管理、用户开关等功能。Shell用于在Dart中或在代表其他用户执行系统管理任务的应用程序中编写shell实用程序脚本。

下面是Shell的一个示例

import 'dart:io';
import 'package:file/local.dart';
import 'package:shell/shell.dart';main() async {var fs = const LocalFileSystem();var shell = new Shell();var password = Platform.environment['PASSWORD'];print('Password: $password');// 将结果传输到文件。var echo = await shell.start('echo', ['hello world']);await echo.stdout.writeToFile(fs.file('hello.txt'));await echo.stderr.drain();//可以运行一个程序,并退出代码//如果返回了有效的退出代码,则会排出stderr,并且//您不必手动操作。////否则,将引发StateError。var find = await shell.start('find', ['.']);await find.expectExitCode([0]); // Can also call find.expectZeroExit()// 转储输出.print(await find.stdout.readAsString());// 还可以运行一个进程并立即返回一个字符串。var pwd = await shell.startAndReadAsString('pwd', []);print('cwd: $pwd');// 可以导航到目录,类似 `cd`.shell.navigate('./lib/src');pwd = await shell.startAndReadAsString('pwd', []);print('cwd: $pwd');// 可以用相同的设置制作一个单独的外壳。var forked = new Shell.copy(shell)..sudo = true..password = password;// 输出echovar superEcho = await forked.start('echo', ['hello, admin!']);await superEcho.expectExitCode([0, 1]);await superEcho.stdout.writeToFile(fs.file('hello_sudo.txt'));
}

三、安卓apk安装、卸载、启动实现

使用Shell,我们需要shell程序脚本。那么安卓apk安装、卸载、启动实现,需要实现制定的Shell指令脚本。

在adb shell中,输入以下命令以安装APK

pm install /sdcard/Download/my_apk_release.apk

那么使用shell,则使用如下方法

  final _shell = Shell(runInShell: false);Future<WrappedProcess> shellRun(List<String> cmd) async {return await _shell.start('su', arguments: ['0', ...cmd]);}Future<void> shellHandleResult(WrappedProcess result) async {var code = await result.exitCode;var s = await result.stdout.readAsString();if (code != 0) {var e = await result.stderr.readAsString();throw '$code:$e';}}

那直接调用安装Android安卓apk

可以实现install则使用安装apk

  @overrideFuture<void> install(String path) async {var result = await shellRun(['pm', 'install', '-r', path]);return shellHandleResult(result);}

卸载apk的uninstall

  @overrideFuture<void> uninstall(String packageName) async {var result = await shellRun(['pm', 'uninstall', '-k', packageName]);return shellHandleResult(result);}

启动安装的应用apk

  @overrideFuture<void> startApp(String componentName) async {var result = await shellRun(['am', 'start', '-n', componentName]);return shellHandleResult(result);}

强制停止指定的应用

  @overrideFuture<void> stopApp(String componentName) async {var result = await shellRun(['am', 'force-stop', '-n', componentName]);return shellHandleResult(result);}

应用安装并且启动

@overrideFuture<void> installThenStart(String path, String componentName) async {var result = await shellRun(['pm', 'install', '-r', path, '&&', 'am', 'start', '-n', componentName]);return shellHandleResult(result);}

至此,可以使用Sell来实现安卓apk安装、卸载、启动等操作。

四、小结

flutter开发实战-安卓apk安装、卸载、启动实现。描述可能不是特别准确,请见谅。

学习记录,每天不停进步。

http://www.yayakq.cn/news/652138/

相关文章:

  • 网站开发需要什么人员网站关键词可以做几个
  • 淄博网站建设公司乐达沈阳注册公司
  • 东莞网站建设aj工作室手机免费制作软件下载
  • 站长工具是做什么的武清网站开发tjniu
  • 重庆最火的网站免费创建app网站
  • 11网站建设waoccwordpress调用用户数据
  • 最好的开发网站建设价格仿腾讯游戏网站源码
  • 网站安全建设管理制度河南省汝州文明建设门户网站
  • 旅游网站设计需求分析从零开始网站开发
  • 网站建设与管理课程视频织梦cms网站模板修改
  • 池州网站建设哪家好给网站做
  • 网站优化垂直化好还是扁平化好网页版游戏排行榜田田田田田田田田
  • 网站seo网络优化公司上海八号桥 网站建设
  • 建设银行个人网站显示不了做网站个网站要多少钱
  • 现货投资网站建设中文网站建设模板下载
  • 建设银行宁波分行招聘网站.net和php哪个做网站好
  • 成品网站源码1688自动跳转软件技术专科有出路吗
  • 中国建设教育网官网是什么网站网站信息平台建设方案
  • 山东莱钢建设有限公司网站品牌营销推广
  • 企业网站管理是什么杭州手机网站制作公司
  • 没有域名 怎么做网站链接湘潭做网站 活动磐石网络
  • 成都建设网站报价网站建设制作pdf
  • 长沙专业网站设计服务网站建设方案怎么做
  • 网站一个多少钱网站做盗版视频赚钱吗
  • 建个电子商务网站多少钱同步显示一个wordpress
  • 做网站接活全流程百度应用商店下载安装
  • 网站网站建设考虑要素网页设计模板素材图片中文
  • 校园网站服务建设在线生成
  • 青县网站建设公司如何购买网站服务器
  • com是什么网站网站开发的缺点