使用命令行开发管理Android

告别云打包排队!HBuilderX+Android Studio本地打包Uniapp安卓Apk全流程 本文详细解析了如何利用HBuilderX与Android Studio实现Uniapp安卓应用的本地离线打包全流程。通过搭建本地环境、配置SDK、生成本地资源、集成原生工程及自动化签名,开发者可彻底摆脱云打包排队困扰,实现高效、可控的APK构建,大幅提升开发与测试迭代速度。 阅读详情

创建项目

Creating a new project with build.xml

If you've already created your project and followedthe above instructions, you can skip this section. If not, you can may eithercreate a new Android project using the regular Eclipse method (via New >Other... > Android Project), and follow the instructions in the abovesection, or you can use the command line as described here.

androidcreate project --name YourProjectName --path C:\dev\YourProject --targetandroid-3 --package com.company.testproject --activity MainActivity

 

生成目录:src/  res/ bin/ libs/

生成文件:

AndroidManifest.xml

build.properties  由开发人员在其中配置build时的参数,Android-tools不会修改它。

default.properites 由android-tools创建和更新,必须checkin到Version ControlSystem。

local.properties  包含本地的SDK路径,不应该checkin VersionControl System。

build.xml 

proguard.cfg 

 

Note: To see theavailable targets, use android list target and you should see something like:

>android list target
id: 1 or "android-3"
     Name: Android 1.5
     Type: Platform
     API level: 3
     Revision: 4
     Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P

In the above case, you can use either 1 or android-3as the target ID.

 

创建完成后,根目录下会生成build.xml,默认task为help,执行ant会显示可以使用的target。其中ant release将会编译后生成一个未签名的apk。

 

build.xml 利用的android项目的自定义task setup(com.android.ant.SetupTask)来完成一系列的编译、打包、执行的操作。所以初始的build.xml所有工作都是<setup />完成的。而setup实际上是import一系列实际干事的target来完成工作的。可以在<setup />前后添加target来完成自定的工作。

 

在Eclipse项目中使用build.xml

默认生成的build.xml在Eclipse中被认为有错误,因为build.xml中没有定义任何target,default target help 是被<setup/> import进来的。所以删除project default target定义就好了。

在bat脚本启动ant,可能需要在命令行中指明build.xml的绝对位置,可能项目中bat脚本的运行目录、eclipse运行目录、ant运行目录不一致。

 

自动签名

默认build.xml不知道签名的配置信息,所以ant release只能生成unsigned的apk包。在同目录下的build.properties添加一下配置信息,并将签名文件拷贝到同目录下就行了。

配置信息:

key.store=《keystored的文件名》
key.alias=《key alias》

如果添加下面的密码信息,就需要在执行ant的时候输入密码了:

key.store.password=《password》

key.alias.password=《password》

配置完成后,再执行ant release就会自动生成signed的apk包了。

 

自动安装签名后的apk

在build.xml的<setup />后面添加target install-r,执行ant install-r就可以直接安装release package到默认设备或浏览器上。

    <targetname="install-r" depends="release">

               <exec executable="${adb}"failοnerrοr="true">

                   <arg line="${adb.device.arg}"/>

                   <arg value="install"/>

                   <arg value="-r" />

                   <argpath="${out.release.file}" />

               </exec>

</target>

NOTE 安装到目标设备

tools/ant/main_rules.xml中<propertyname="adb.device.arg" value="" />,所以安装到默认的设备或浏览器上。来指定安装目标,可以在ant命令执行时定义,如:ant –Dadb.device.arg=[-d|-e|-s<serialNumber>],或者在build.xml的<setup />之前设置property adb.device.arg。

 

自动安装后,自动启动

可以利用ant,实现“自动启动”的target,发在“自动安装”的target之后运行,实现和eclipse中安装运行debug apk一样的效果。

1. 从Manifest文件中获取包名和Activity名称

    <!-- Name of the application packageextracted from manifest file -->

    <xpathinput="AndroidManifest.xml" expression="/manifest/@package"

                output="manifest.package" />

    <xpath input="AndroidManifest.xml" expression="/manifest/application/activity/@android:name"

                output="manifest.activity" />

2. 获取启动Activity的名称

从Manifest文件中获取的启动Activity名称形式多样,例如,

android:name=”.MainActivity”

或者,没有点,android:name=”.MainActivity”

或者,包名都也好的,android:name=”com.test.MainActivity”

需要在ant中使用字符处理task来处理从Manifest文件中获取的名称,

第三方的扩展ant-contrib提供这样的task,在sourceforge上可以下载到。

<taskdefname="propertyregex"

    classname="net.sf.antcontrib.property.RegexTask">

    <classpath>

        <pathelementlocation="D:\\wihome\\projects\\android\\HelloCmd\\ant-contrib-1.0b3.jar"/>

    </classpath>

</taskdef>

<propertyregexproperty="manifest.activity.name"

    input="${manifest.activity}"

    regexp="[.]*[\.]*([^\.]*)$"

    select="\1" />

3. 利用命令adb shell am start -n<package-name>/<package-name>.<activity-name>启动已经安装的application。

<targetname="run-r" depends="install-r">

    <exec executable="${adb}"failοnerrοr="true">

        <arg line="${adb.device.arg}" />

        <arg line="shell am start -n" />

        <argvalue="${manifest.package}/${manifest.package}.${manifest.activity.name}"/>

    </exec>

</target>

 

利用Config文件控制文件中常量内容

参看《Using Ant to Automate Building AndroidApplications》 >>  Usinga Java configuration file

 

在Eclipse项目中使用ant

1. 在Eclipse项目的根目录(AndroidManifest.xml同目录)执行

android update project –path.

执行完之后会在目录下生成build.xml

 

2. 修改build.xml

默认的build.xml只包含target,target都被<setup />隐藏起来。eclipse ant plugin 认不出来隐藏的target就没法执行。所以需要做如下修改:

1)<setup />改为<setupimport="false"/>

2)将rules文件(如,sdk.dir/tools/ant/main_rules.xml,一般都是main rules)手动import进来。

将rules文件的project标签的内容,也即那些隐藏的target,拷贝到setup标签之后。

 

3. 在Eclipse中右键点击build.xml,选择run as >> ant build…,配置需要执行的target,就可以run了。

 

4. 将签名keystore文件拷贝到project根目录,配置build.properties文件,就可以自动生成签名好的apk了,如何配置,参见本文其他部分。

 

Note build.xml的执行需要Eclipse ant plugin的ant版本在1.8以上。最新的eclipse 3.7(indigo)中的ant已经达到1.8。

 

Ant启动

 

 

 

 

[Reference]

SDK DOC >> Developing >> Managing Projects>> From the Command Line

SDK DOC >> Developing >> Building andRunning

Online DOC >> Using Ant to Automate BuildingAndroid Applications

 

 

丨Android丨SDK管理工具——sdkmanager命令行使用指南 前言(废话) 为什么要写博客? 这个……主要还是因为个人感受吧,不知道你们有没有经历过,但是我感受过,遇到问题各种尝试找不到解决方法,最后不得不依赖网络,但是网络上也没有关于这个问题的解决方法,身边也没有懂这个的人,网上问了也没有想要的回答……这个确实是挺自闭的。 我觉得写这个博客不止是为了给自己看,更应该是给别人看,给需要的人看。既然我有幸知道解决方法,就应该分享出来。 为什么要写这个指南? s... 阅读详情

相关推荐

AndroidStudio_Gradle命令行的使用_使用gradle命令编译出apk_以及依赖管理---Android原生开发工作笔记77

对于gradle的安装来说. 然后我们去看一下gradle,很简单这个工具,下载以后,解压 然后找到bin目录 去配置环境变量 然后androidstudio,也有自带的gradle,也可以把这个bin目录配置到环境变量的path也行 还有一种gradle的安装方法,左侧,可以看到有个gradlew.bat文件,用这个文件也可以让他自动给我们安装gradle,配置环境变量. 然后我们在我们的一个androidstudio工程,这个工程根目录有这个gradlew.bat文件,...

添柴程序猿的专栏 675

Python知识点:如何使用Python开发命令行工具

使用 Python 开发命令行工具是一个非常实用的技能,能够简化日常工作流程并自动化常见任务。选择合适的库argparse适合简单工具,click则更加灵活。命令行参数解析:通过定义位置参数和可选参数,让用户可以方便地提供输入。提供帮助和文档:确保工具有完善的帮助信息,通过--help命令展示。打包工具:通过setuptools打包工具,使其可供他人使用。通过这些步骤,你可以轻松开发和发布自己的命令行工具,提高工作效率。

杰哥在此的专栏 1735

掌握ADB:安卓手机调试工具的全面指南

Android Debug Bridge(ADB)是一个多功能命令行工具,它允许开发者与Android设备进行通信。ADB广泛用于多种场景,比如安装和调试应用程序、访问Unix shell等。它通过USB或者TCP/IP连接与设备通信,让开发者可以执行各种设备操作。安装ADB相对简单,但需要确保你的系统满足以下基本要求:- 你的操作系统为Windows、macOS或Linux。- 已安装Java Development Kit(JDK)。

weixin_33431149的博客 2926

【小沐学C++】C++ 常用命令行开发工具(Linux)

编译的四个阶段:预处理(扩展各个宏与文件)、编译(得到汇编代码)、汇编(得到机器码)、链接(得到可执行文件)预处理:编译处理宏定义等宏命令(eg: #define)——生成后缀为“.i”的文件 编译:将预处理后的文件转换成汇编语言——生成后缀为“.s”的文件汇编:由汇编生成的文件翻译为二进制目标文件——生成后缀为“.o”的文件连接:多个目标文件(二进制)结合库函数等综合成的能直接独立执行的执行文件——生成后缀为“.out”的文件╮( ̄▽ ̄)╭如果您感觉方法或代码不咋地//(ㄒoㄒ)//

爱看书的小沐 2474

安卓系统应用管理 - 无需ROOT的停用与卸载攻略

ADB命令行工具提供了丰富的命令集,可以帮助开发者进行设备调试、文件传输、应用安装卸载等操作。下面是几个常用的ADB命令及其示例:安装应用:示例:将会安装一个名为myapp.apk的应用到连接的Android设备上。卸载应用:示例:会卸载包名为的应用。查看设备日志:adb logcat示例:可以过滤特定标签的日志输出。复制文件:示例:将会把当前目录下的test.txt文件推送到设备的SD卡中。

weixin_36464343的博客 2726

Android命令行开发环境搭建和HelloWorld Project

Android命令行开发环境搭建和HelloWorld完整的Project

Python实战:命令行工具开发

本文将深入探讨如何使用Python开发一个命令行工具。我们将从项目规划、功能实现、用户交互、错误处理和测试等方面进行详细讲解。我们将展示如何使用Python标准库中的`argparse`模块来处理命令行参数,以及如何构建一个功能完整、易于使用的命令行工具。

oandy0的博客 964

2024年上半年网络工程师下午真题及答案解析

位于MPLS域边缘、连接其他网络的LSR称为( 3 ),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时,MPLS入口设备分析IP报文的内容并为其添加合适的标签,所有MPLS网络中的LSR根据标签转发数据,当该IP报文离开MPLS网络时,标签由出口LER弹出。LSP的出口LER称为( 6 )。某高校网络拓扑如下图所示,两校区核心(CORE-1、CORE-2),出口防火墙(NGFW-1、NGFW-2)通过校区间光缆互联,配置OSPF实现全校路由收敛,两校区相距40km。

bsefef的博客 2471

【命令行魔法:掌握Linux基础工具开发的独门技艺】

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件.安装完毕之后可以通过拖拽的方式将文件上传过去.关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!可以通过 ping 指令验证。

qq_64446981的博客 1108

企业如何利用群晖 NAS 构建高效数据备份与容灾体系

群晖 NAS 不仅是一个企业级文件存储设备,更是一个完整的数据保护平台。通过 Active Backup for Business、快照技术和多层次容灾方案,企业可以在确保数据安全的同时,实现业务的高可用与持续性。在当今充满不确定性的环境下,企业应将数据备份与容灾体系作为 IT 战略的重要组成部分,而群晖 NAS 则是一个值得信赖的核心基石。

Trihawk的博客 491

海康威视工业相机SDK二次开发实战:多相机同步采集与图像存储

本文详细介绍了海康威视工业相机SDK二次开发实战,包括多相机同步采集与图像存储的优化方案。通过MVS软件搭建开发环境,实现硬件与软件触发同步采集,并提供高效的图像存储管理技巧,帮助开发者提升工业视觉项目的效率与稳定性。

weixin_29168813的博客 666

Arduino CLI 终极指南:从零开始掌握命令行开发

想要摆脱图形界面束缚,用命令行高效开发 Arduino 项目吗?Arduino CLI 正是你需要的强大工具!这个官方命令行工具集成了开发板管理、库管理、代码编译、程序上传等所有核心功能,让你在终端里就能完成完整的 Arduino 开发流程。无论是自动化构建、CI/CD 集成,还是远程服务器开发,Arduino CLI 都能让你的工作效率提升数倍。 ## 🚀 三分钟快速上手 ### 安装方式

gitblog_00787的博客 193

模型优化系列——模型剪枝/量化概述

模型优化目的:通过减少模型大小,提高推理速度等使模型成功部署在各个硬件中并实时有效运作。

qq_61210574的博客 1293

Android是一个重要的开发工具,它让你可以使用ADB命令行工具来对设备进行调试和管理

根据提供的引用内容,Android是一个重要的开发工具,它让你可以使用ADB命令行工具来对设备进行调试和管理。在Android应用程序中添加按钮控件有两种方法,可以通过静态和动态方式来添加按钮控件。这将会在你的设备上安装指定路径下的apk应用程序。同样的,你也可以使用其他的ADB命令行工具来完成其他操作。其中,layout是指放置按钮的布局容器,可以是LinearLayout、RelativeLayout等等。请提供更具体的问题,我将竭尽所能为您提供帮助。

[Blog][Domain] programb.blog.youkuaiyun.com 202

android 数据库锁的问题

最近在项目中遇到一个错误: 12-26 17:29:10.501 32592 32644 W SQLiteConnectionPool: The connection pool for database '***.db' has been unable to grant a connection to thread 1378 (thread-pool-0) with flags 0x2 for...

低调的成长 2903

学习Fidder主要掌握的技术——流量篡改

本文介绍了Fiddler工具的三种常用调试方法:1)本地映射-通过保存修改JSON响应文件实现接口数据模拟;2)Composer接口调试-通过修改请求参数快速测试接口异常处理;3)断点调试-在请求/响应过程中拦截并修改数据。这三种方法分别适用于前端开发、接口测试和健壮性验证等场景,能够有效提高调试效率。操作步骤包括保存响应、修改数据、配置规则等关键环节,并提供了详细的界面操作指引。

2301_79022773的博客 353

安卓ADB驱动安装与配置及使用说明

安卓ADB驱动安装与配置及使用说明 去发现同类优质开源项目:https://gitcode.com/ 本文档详细介绍了安卓ADB(Android Debug Bridge)驱动的安装、配置及使用方法。ADB是一款用于与安卓设备进行通信的命令行工具,可以帮助开发者进行设备调试、软件更新、数据管理等工作。通过本文,您将学会如何快速上手ADB驱动,提高工作效率。 去发现同类优质开源项目:https:/...

gitblog_06708的博客 482

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 332

从新手到专家:Android 命令行工具全解析

Android 开发不仅仅局限于图形界面的集成开发环境(IDE),如 Android Studio。命令行工具同样强大,它们可以帮助开发者快速执行任务,自动化构建流程,以及进行设备管理。本文将介绍一些最常用的 Android 命令行工具及其使用方法。

Unity打怪升级 3438

从赛题到实战:一份面向高职“区块链技术应用”赛项的食品溯源系统全栈部署与运维指南

本文为高职院校学生备战“区块链技术应用”技能大赛提供了一份详实的食品溯源系统全栈部署与运维指南。内容涵盖从理解赛题业务逻辑、绘制技术蓝图,到搭建4节点FISCO BCOS联盟链、部署管理平台与智能合约,再到核心运维技能与前后端联调测试的完整流程,旨在帮助参赛者将赛题转化为可运行的实战项目,全面提升区块链全栈开发与运维能力。

weixin_29172201的博客 664

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

解锁安卓开发利器:深度探析ADB【安卓开发】

ADB利用Android系统的标准化接口,在安装APK文件时并非绕过定制系统,而是通过开发者模式下的访问,利用Android系统的基本框架和规范,使得在MIUI等定制系统上同样能实现应用程序的安装和管理。

qq_22841387的博客 1543

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓开发中git 使用场景

安卓开发中git 使用场景(命令行操作) 场景1. 克隆远程项目到本地 git clone + 项目地址 + 空文件夹 场景2. 提交本地代码到远程仓库(项目已关联git的情况下) git add . (添加所有新创建的文件) git commit -m + 描述 (提交改变到本地仓库) git pull (在push本地代码到远程仓库之前,需先更新远程仓库最新的代码到本地,防止代码冲突)...

Peace's 博客 391

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

提升Android开发效率:ADB安装与使用指南

提升Android开发效率:ADB安装与使用指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在Android开发和测试过程中,ADB(Android Debug Bridge)是一个不可或缺的工具。它作为一个功能强大的命令行工具,允许开发者与Android设备进行无缝通信和调试。无论您是Android开发者还是测试人员,掌握ADB的使用都将极大地提升您的工作效率。...

gitblog_06529的博客 443

如何获取安卓签名

打开命令行工具输入命令 keytool -list -v -keystore 安卓证书文件的绝对路径

qq_28580049的博客 195

android 命令行开发,使用命令行方式开发Android应用

Android应用程序主要用Java语言开发,所以JDK是不可缺少的,此外还要下载和安装Android SDK。Android SDK是一个非安装的压缩包,直接解压即可使用(本人将其解压到D:\目录下,解压后一般是D:\android-sdk-windows)下面介绍一下Android SDK的目录结构tools目录主要存放一些常用的命令工具以及其他开发所需的第三方工具。platforms目录下每...

weixin_39549312的博客 429

Android Gradle 技巧之二: 最爱命令行

命令行 很多做 Android 开发不久的同学,习惯于使用图形界面,对命令行操作很陌生甚至恐惧。遇到 AS 运行错误,束手无策。 AS 为了确保易用性,也在 UI 界面上屏蔽了很多命令行运行的细节,导致很多人觉得 AS 难用。 这种情况,我在解决用户集成使用 Bugtags SD...

120
上一篇: ubuntu10.04 下通过usb在真机调试android程序的设置???????????? no permissions
下一篇: 修改Android模拟器的IMSI
NetMicrobe
博客等级 码龄22年 27粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值