本章学习adt安卓打包过程、adb指令学习、并通过adb将打包的APK发给设备

1.打包

在eclipse中已经帮我们实现打包了.

具体打包流程如下:

最终一个APK包含了如下:

  • classes.dex文件 (由class编译过来的)
  • resources.arsc文件 (编译过的资源文件)
  • AndroidManifest.xml文件 (描述文件版本,应用中的各个组件)
  • uncompiled resources文件 (未被编译的文件,比如视频等)
  • META-INF签名文件夹

ecilipse打包过程如下:

点击export signed application package(导出带签名的APP包,签名的作用是避免盗版):

然后选择要导出的项目,点击next,如下图所示:

然后这个界面让我们填写证书信息的,我们选择"Create new keystore"新建一个签名(keystore:用于对APP签名的),选好保存位置,写好密码,密码默认123456吧,点击继续"next";

然后开始创建签名,写完后"next",如下图所示:

注意:

  • validity: key的有效期,如果填的年份短,到时候key过期了,则发布新版本APP时,只能换个key,从而导致APP无法升级,只能重装APP才行,
  • 因为一个APP唯一性是通过(包名+签名识别)的.

然后就可以选择软件APK的存放地址,点击"finish",如下图所示:

然后,就可以看到已经多了一个"helloworld.apk"文件了!

接下来,我们便来学习adb指令,来安装helloworld

2.adb指令

安装相关命令

adb kill-server           //关闭连接

adb start-server         //开启连接

adb devices                  //显示连接的设备,如果要指定向某个设备发送命令,则使用: adb -s <dev number> cmd

adb uninstall com.example.helloworld         //卸载以前的helloworld,必须写包名才行

adb install F:\android\apk\helloworld.apk     //安装我们刚刚打包的APK

其它常用命令

adb shell   //进入设备shell模式(就可以通过cd、cat等linux命令操作设备)

adb shell ls   //快捷使用ls命令,当然也可以写成其它常用命令

/*push:推,将文件拷贝到设备的指定目录中*/
adb remount //将 '/system' 部分置于可写入的模式,默认是只读模式.
adb push C:\Users\Administrator\.xml /system/lib //将1.xml拷贝到设备指定目录下
/*pull:拉,将设备的文件拉取到PC机上*/
adb pull /data/log d:/log

push时可能遇到问题1:

表示/system/lib下存储空间不足.

通过adb shell fb查看确实为0:

这是因为模拟器启动的时候,为了避免内存浪费,所以system节省为0.

提示:在ADT界面上也可以使用push/pull.

push如下图所示:

pull如下图所示:

4.Android-adt安卓打包过程、adb指令学习的更多相关文章

  1. MAC连接安卓手机通过adb指令安装apk

    Android的apk可以通过adb命令来安装.在MAC电脑上,如果想通过命令行的方式给安卓手机安装apk,需要做以下操作: 一句话概括就是:将安卓SDK的adb命令添加到环境变量中,然后通过adb ...

  2. android基础-Apk打包过程(了解)

    此文来源于<Android软件安全与逆向分析> 一.打包资料文件,生成R.java文件. 二.处理aidl文件,生成相应的Java文件. 三.编译工程源代码,生成相应的class文件. 四 ...

  3. Ubuntu15.10 编译VLC Android(安卓)过程记录

    持续更新中... 最后一次修改于 2016-03-20 15:33:45 1.必要库的安装 除基本编译环境(gcc.g++等外),需要额外安装如下的库(用于下载必要的依赖文件) (1)JDK 推荐安装 ...

  4. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

  5. 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录

     前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...

  6. Android之ADB指令

    Android打包过程 aapt Android应用打包工具 adb Android调试桥 下面打包过程,eclipse帮我们自动打包好run as->Android application r ...

  7. Unity安卓apk打包过程

    前言:对于Unity开发小白来说,Android打包无疑是个头痛的问题,所以我总结了 Unity安卓APK的打包过程 第一步:下载对应版本的Android Platform 第二步:安装JDK并配置J ...

  8. Android应用程序(APK)的编译打包过程

    (9878) (7) 现在很多人想对Android工程的编译和打包进行自动化,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个深入的理解,至少要知道它的 ...

  9. 【转】android Apk打包过程概述_android是如何打包apk的

    最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程.   流程概述: 1.打包资源文件,生成 ...

随机推荐

  1. 个人收藏--未整理—C# http/https 上传下载文件

    c# HTTP/HTTPS 文件上传. 分类: .net 2015-02-03 08:36 541人阅读 评论(0) 收藏 举报 方法主体 [csharp] view plaincopy public ...

  2. 【RN - 基础】之FlexBox弹性布局

    前言 弹性盒模型(The Flexible Box Module),又叫FlexBox,意为“弹性布局”,旨在通过弹性的方式来对齐和分布容器中内容的空间,使其能适应不同的屏幕,为盒装模型提供最大的灵活 ...

  3. js鼠标划过事件

    js鼠标划过事件一般有两对 onmouseover/onmouseout onmouseenter/onmouseleave 区别: 1.onmouseover/onmouseout 鼠标经过自身会触 ...

  4. css关于控制div靠左或靠右的排版布局

    关于控制div靠左或靠右的排版布局,我整理三种平时用到的css属性小知识(元素模块靠左或靠右排版): 1.float属性(float 属性定义元素在哪个方向浮动) 值:left(元素向左浮动).rig ...

  5. C语言博客作业11

    一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...

  6. 机器学习十大算法总览(含Python3.X和R语言代码)

    引言 一监督学习 二无监督学习 三强化学习 四通用机器学习算法列表 线性回归Linear Regression 逻辑回归Logistic Regression 决策树Decision Tree 支持向 ...

  7. c, ANSI C, embedded c, after IKM online assessment

    C programming language was developed in 1972 by Dennis Ritchie at bell laboratories of AT&T (Ame ...

  8. 华为云WeLink:智能工作空间,联接无限想象

    [中国,上海,2019年9月19日] 在HUAWEI CONNECT 2019期间,华为办公应用装备部部长王俊先生代表华为云介绍WeLink--企业专属的智能工作空间.WeLink源于华为数字化办公实 ...

  9. python 协程与go协程的区别

    进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...

  10. 转:org.apache.maven.archiver.MavenArchiver.getManifest错误

    eclipse导入新的maven项目时,pom.xml第一行报错: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mav ...