本章学习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. Glibc编译报错:*** LD_LIBRARY_PATH shouldn't contain the current directory when*** building glibc. Please change the environment variable

    执行glibc编译出错如下图 [root@localhost tmpdir]# ../configure --prefix=/usr/loacl/glibc2.9 --disable-profile ...

  2. ExtentTestNGIReporterListener

    package com.testng.config; import com.aventstack.extentreports.ExtentReports; import com.aventstack. ...

  3. 前端API层架构,也许你做得还不够

    上午好,今天为大家分享下个人对于前端API层架构的一点经验和看法.架构设计是一条永远走不完的路,没有最好,只有更好.这个道理适用于软件设计的各个场景,前端API层的设计也不例外,如果您觉得在调用接口时 ...

  4. .Net Core3.0 WEB API 中使用FluentValidation验证,实现批量注入

    为什么要使用FluentValidation 1.在日常的开发中,需要验证参数的合理性,不紧前端需要验证传毒的参数,后端也需要验证参数 2.在领域模型中也应该验证,做好防御性的编程是一种好的习惯(其实 ...

  5. xmlhttp.readyState的值及解释

    xmlhttp.readyState的值及解释: 0:请求未初始化(还没有调用 open()). 1:请求已经建立,但是还没有发送(还没有调用 send()). 2:请求已发送,正在处理中(通常现在可 ...

  6. 2019-2020-11 20199304 《Linux内核原理与分析》 第十一周作业

    缓冲区溢出漏洞实验 一.简介 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回 ...

  7. 基于Win服务的标签打印(模板套打)

    最近做了几个项目,都有在产品贴标的需求 基本就是有个证卡类打印机,然后把产品的信息打印在标签上. 然后通过机器人把标签贴到产品上面 标签信息包括文本,二维码,条形码之类的,要根据对应的数据生成二维码, ...

  8. 索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!

    前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结.自上上篇写了手动搭建Redis集群和MySQL主从同步(非Docker)和上篇写了动手实现MySQL读写分离and故 ...

  9. 一、Java基础篇

    1.简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java 平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出 ...

  10. mysql数据库命令

    删除一个表: drop table if exists 表名; 在表中插入行: Insert into 表名 values(, , ,) 创建表: Create table 表名( Id int(10 ...