我的编程空间,编程开发者的网络收藏夹
学习永远不晚

不用 IDE,仅用命令行和 SDK 开发 Android App

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

不用 IDE,仅用命令行和 SDK 开发 Android App

文章目录1.新建项目文件夹2.创建 java 代码所在文件夹3.创建 java 文件4.创建 AndroidManifest.xml 文件5.创建资源文件目录6.编译资源文件7.将 java 文件编译成 .class 字节码文件8.将字节码文件转换成 dex 格式9.将所有资源文件打包到一个地方10.使用 ApkBuilder 工具将 dex 和资源文件打包成 apk 文件11.使用 zipalign 优化 apk12.使用 debug 密钥给 apk 签名13.启动 Android 模拟器14.安装 apk15.启动 app参考文章 1.新建项目文件夹
mkdir Hello

进入该文件夹:

cd Hello\
2.创建 java 代码所在文件夹
mkdir class="lazy" data-src\dom\domain
3.创建 java 文件
vim class="lazy" data-src\dom\domain\SayingHello.java

进入 vim 编辑模式,点击

i
开始插入代码,输入:

 package dom.domain;
 import android.widget.TextView;
 public final class SayingHello extends android.app.Activity
 {
     public void onCreate( final android.os.Bundle activityState )
     {
         super.onCreate( activityState );
         final TextView textV = new TextView( SayingHello.this );
         textV.setText( "Hello world" );
         setContentView( textV );
     }
 }

点击 Esc 退出 vim 编辑模式,输入

:wq
保存。

4.创建 AndroidManifest.xml 文件
vim AndroidManifest.xml

进入 vim 编辑模式,点击

i
开始插入代码,输入:


点击 Esc 退出 vim 编辑模式,输入

:wq
保存。

5.创建资源文件目录
mkdir res
6.编译资源文件
aapt package -f -I E:\ware\Android\sdk\platforms\android-27\android.jar -J class="lazy" data-src -m -M AndroidManifest.xml -S res -v

其中,

E:\ware\Android\sdk\
是 SDK 安装目录,使用时务必替换为自己的 SDK 路径
由于本例中没有资源文件,所以这一行命令执行后什么也不会生成。

7.将 java 文件编译成 .class 字节码文件
javac -bootclasspath E:\ware\Android\sdk\platforms\android-27\android.jar -classpath class="lazy" data-src -source 1.7 -target 1.7 class="lazy" data-src\dom\domain\*.java

这一步执行完成后,

class="lazy" data-src\dom\domain\
文件夹下会编译出
SayingHello.class
文件

8.将字节码文件转换成 dex 格式

首先使用 jill 将 .class 文件转换为 .jayce

java -jar E:\ware\Android\sdk\build-tools\27.0.3\jill.jar --output classes.jayce class="lazy" data-src

这一步完成后,当前目录下会生成

classes.jayce
文件

然后使用 jack 将 .jayce 文件转换为 .dex

java -jar E:\ware\Android\sdk\build-tools\27.0.3\jack.jar --import classes.jayce --output-dex .

这一步完成后,当前目录下会生成

classes.dex
文件

9.将所有资源文件打包到一个地方
aapt package -f -F app.apkPart -I E:\ware\Android\sdk\platforms\android-27\android.jar -M AndroidManifest.xml -S res -v

这一步完成后,当前目录下会生成

app.apkPart
文件

10.使用 ApkBuilder 工具将 dex 和资源文件打包成 apk 文件
java -classpath E:\ware\Android\sdk\tools\lib\sdklib-26.0.0-dev.jar com.android.sdklib.build.ApkBuilderMain app.apkUnalign -f classes.dex -u -z app.apkPart

这里会产生一个警告:

THIS TOOL IS DEPRECATED. See --help for more information.
,这个工具过时了,但暂时没有什么影响,可以继续使用。这一步完成后,当前目录下会生成
app.apkUnalign
文件

11.使用 zipalign 优化 apk
zipalign -f -v 4 app.apkUnalign app_aligned.apk

这一步完成后,当前目录下会生成

app_aligned.apk
文件

12.使用 debug 密钥给 apk 签名
jarsigner -verbose -keystore "C:\Users\Kevin Wang\.android\debug.keystore" -signedjar app.apk app_aligned.apk androiddebugkey

其中,

C:\Users\Kevin Wang
是你的用户地址,可在命令行输入
%USERPROFILE%
查看自己的地址,这里使用的 Android debug 密钥库,接下来会让你输入密码,默认密码是
android

这一步完成后,当前目录下会生成
app.apk
文件。这一个 apk 文件就是最终的 apk 了,可以直接安装到真机上运行,或者使用 Android 模拟器安装运行。

13.启动 Android 模拟器

先查看已有的 Android 模拟器:

emulator -avd -list-avds

启动 Android 模拟器

emulator -avd Pixel_2_API_28

其中,

Pixel_2_API_28
是模拟器名字,从上一步列出的已有模拟器中选择一个即可。

14.安装 apk

新开一个命令行窗口,安装 apk

adb install app.apk
15.启动 app
adb shell am start -n dom.domain/.SayingHello

大功告成,运行结果:
原创文章 67获赞 63访问量 6万+ 关注 私信 展开阅读全文
作者:AlpinistWang


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

不用 IDE,仅用命令行和 SDK 开发 Android App

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

不用 IDE,仅用命令行和 SDK 开发 Android App

文章目录1.新建项目文件夹2.创建 java 代码所在文件夹3.创建 java 文件4.创建 AndroidManifest.xml 文件5.创建资源文件目录6.编译资源文件7.将 java 文件编译成 .class 字节码文件8.将字节码
2022-06-06

如何利用MySQL和C++开发一个基于命令行的图书管理系统

如何利用MySQL和C++开发一个基于命令行的图书管理系统概要:在本文中,我们将介绍如何使用MySQL和C++开发一个简单的基于命令行的图书管理系统。我们将涵盖从数据库设计到C++代码实现的整个过程,并提供具体的代码示例。介绍:图书管理系统
2023-10-22

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录