本章学习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. 折腾笔记-计蒜客T1167AC记

    查看原题 原题地址 思路: 判断回文+判断质数 初步代码: #include <bits/stdc++.h> using namespace std; bool prime(int n) ...

  2. Java基础IO类之缓冲流

    首先要明确一个概念: 对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是:能够高效的读写信息,原理是先将数据先缓冲起来,然后一起写入或者读取出来. 对于字节: BufferedInp ...

  3. JDK API1.6常用方法

    一.String类 常见用法 : (String类代表字符串,JAVA程序中的所有字符串字面值(如“abc”)都作为此类的实例实现,字符串是常量,他们的值在创建之后不能更改,字符串缓冲区支持可变的字符 ...

  4. 【前端】之CSS3基础知识

    CSS3 私有化前缀 考虑到CSS3的兼容性问题,某些属性需要添加浏览器的私有化前缀 几种主流浏览器的私有化前缀如下: Chrome.Safari:-webkit- Firefox:-moz- IE: ...

  5. typedef & #defiine & struct

    #define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了. typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名), ...

  6. alloc 和 init都做了什么验证。

    结论: alloc负责分配内存和创建对象对应的isa指针: init只是返回alloc生成的对象.  所以alloc后,多次调用init,返回的对象是同一个! 代码如下: // // main.m / ...

  7. STM32 GPIO口的配置和应用

    STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) ...

  8. 华为云OCR文字识别 免费在线体验!

    嘿,华为云OCR文字识别了解一下,免费在线体验! 物流行业快速提取运单信息.医疗/保险行业单据快速录入.政务办事人证检验,你知道这些都是如何实现的么? 答案就是:OCR文字识别! 作为AI时代效率倍增 ...

  9. bash中$符号的一般用法

    $一般用于获取变量的内容(字符串或数字等),用以构成命令version=$(uname -r).构成字符串echo "my name is $myname".进行算术运算等tota ...

  10. 浏览器url访问tomcat出现错误 java.lang.NoSuchMethodError解决方法

    一般该类错误: 找不到方法或找不到类, 都是maven pom 仓库依赖的问题,有时是 因为缺少该依赖类,可以考虑添加相关依赖: 有时因为依赖冲突, 可以到 maven 的仓库下面把 有关该类的包 全 ...