最简单的Android项目

时间:2021-11-26 09:11:57

这是我在windows环境下,试验过的最简单Android项目,只用记事本和命令行即可完成。

环境准备

开发环境需要Java SDK(官网下载),Android SDK(官网下载)。

首先安装Java SDK,然后将Android SDK解压到任意目录(建议解压到某个盘根目录,方便后续命令输入)。

接着需要下载Android SDK。打开刚才解压目录下的SDK Manager,勾选需要安装版本的SDK Platform点击Install package下载安装。

项目建立及代码编写

在任意地方新建一个目录,保存这个项目,然后新建一个src目录,用于存放源文件。因为Java有包的概念,所以进入src目录后,根据包名的层次,依次建立相应目录,然后新建Java源程序文件,比如:

 package test.android;

 import android.app.Activity;
import android.os.Bundle;
import android.app.AlertDialog; public class Mini extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new AlertDialog.Builder(this).setMessage("It works.").show();
}
}

将文件保存为Mini.java

回到项目根目录,新建另一个文件,保存为AndroidManifest.xml,内容如下:

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.android">
<application>
<activity android:name=".Mini">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

还可以从这里下载演示项目。

好了,项目至此已经完成了,下面进入编译打包环节。

编译打包

先打开命令行,输入javac -version,如果没有显示出java版本号,请将Java SDK的bin目录添加到path环境变量。

把当前目录切换到项目的根目录,然后新建两个目录

 mkdir bin
mkdir bin\classes

因为没有用到资源文件,所以第一步,直接编译Java源文件。

 javac -encoding utf-8 -source 1.7 -target 1.7 -bootclasspath \Android\android-sdk-windows\platforms\android-23\android.jar -d bin\classes src\test\android\Mini.java

将编译好的文件打包成dex格式

 D:\Android\android-sdk-windows\build-tools\23.0.3\dx.bat --dex --output=bin\classes.dex bin\classes

将资源文件打包

1 D:\Android\android-sdk-windows\build-tools\23.0.3\aapt.exe package -f -M AndroidManifest.xml -I \Android\sdk\platforms\android-19\android.jar -F bin\mini

用apkbuilder将所有文件打包成apk

1 D:\Android\android-sdk-windows\tools\apkbuilder.bat \workspace\test\android\minimum\mini.apk -v -u -z D:\workspace\test\android\minimum\bin\mini -f D:\workspace\test\android\minimum\bin\classes.dex

高版本的Java SDK里已经不提供apkbuilder.bat了,这里将文件内容贴一下,可以自己创建一个:

 @echo off
rem Copyright (C) The Android Open Source Project
rem
rem Licensed under the Apache License, Version 2.0 (the "License");
rem you may not use this file except in compliance with the License.
rem You may obtain a copy of the License at
rem
rem http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License. rem don't modify the caller's environment
setlocal rem Set up prog to be the path of this script, including following symlinks,
rem and set up progdir to be the fully-qualified pathname of its directory.
set prog=%~f0 rem Change current directory and drive to where the script is, to avoid
rem issues with directories containing whitespaces.
cd /d %~dp0 rem Check we have a valid Java.exe in the path.
set java_exe=
call lib\find_java.bat
if not defined java_exe goto :EOF set jarfile=sdklib.jar
set frameworkdir= if exist %frameworkdir%%jarfile% goto JarFileOk
set frameworkdir=lib\ if exist %frameworkdir%%jarfile% goto JarFileOk
set frameworkdir=..\framework\ :JarFileOk set jarpath=%frameworkdir%%jarfile% call %java_exe% -classpath %jarpath% com.android.sdklib.build.ApkBuilderMain %*

生成签名文件

1 keytool -genkey -alias my.keystore -keyalg RSA -validity 20000 -keypass 123456 -storepass 123456 -keystore my.keystore

生成签名文件时,提示输入姓名单位之类都可以直接回车忽略,最后输入y确认即可

对apk文件签名

1 jarsigner -verbose -keystore my.keystore -keypass 123456 -storepass 123456 -signedjar mini_signed.apk mini.apk my.keystore

这时就生成了最终的apk文件,可以安装到手机上了。

最简单的Android项目的更多相关文章

  1. gradle学习系列之eclipse中简单构建android项目

    看不到图片能够去訪问这个网址看看:http://pan.baidu.com/s/1o6FrFkA 一.什么是Gradle 官网www.gradle.org上介绍Gradle是升级版(evolved)的 ...

  2. 最简单的Android项目(NDK命令行编译)

    Android的NDK编程需要下载NDK编译环境,可以从官网下载window64位版,然后解压到任意目录即可. NDK的实现其实是利用里Java的jni方法,所以前期的步骤可以参考jni的实现方法,只 ...

  3. 最简单的Android项目(添加jar文件)

    如果项目需要引用第三方jar文件,需要对编译命令做一些改动. 首先在项目根目录创建libs目录,将需要的jar文件拷贝到里面. 编译过程中有两步需要改动. 编译java源文件时,需要添加class p ...

  4. 最简单的Android项目(含有资源文件)

    上次的项目没有使用资源文件,打包出的apk安装后是系统默认图标,程序标题也是包名加类名. 添加资源需要对编译的命令做一点调整. 首先在项目根目录新建res和assets目录,在res内新建drawab ...

  5. 第一个简单的android项目

    开发平台:windows7+Eclipse+andriod SDK(24.0)+ADT(23.0.4).这个环境的搭建在前一篇文章(Mobile testing下的appium测试)里面已经描述了. ...

  6. Android应用开发高效工具集1---ant构建简单Android项目

    本文转载于:http://blog.csdn.net/lincyang/article/details/40950153 在java编译那些事儿中提到了用ant去编译Java项目,今天扩展到用它来构建 ...

  7. Android项目结构 以及体系结构

    学习Android平台的人一般对Android的平台的应该有点认识 其它的就不多讲了 Android项目一般由以下几个部分构成 以上是一个简单的Android项目结构目录图 1. src  主要是 源 ...

  8. Android高效的应用程序开发工具集1---ant构建一个简单的Android工程

    在java编译那些事通过提到ant编译Java工程,如今扩大到用它来构建Android目,事实上道理是相通的.变化的仅仅是使用的形式.ant构建相比IDE的优点是多个子项目使用自己定义jar包时,an ...

  9. Android项目开发全程(二)--Afinal用法简单介绍

    本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目 ...

随机推荐

  1. ArcGIS Server开发教程系列(1)&Tab;Arcgis server 10&period;1 的安装

    本系列所使用的软件版本如下: Windows 7 X64 / Windows server 2008 X64 Arcgis for Desktop 10.1 Arcgis 10.1 for serve ...

  2. 克隆虚拟机重启服务时 Error&colon;No suitable device found&colon; no device found for connection &quot&semi;System eth0&quot&semi;

    故障说明: 在克隆几台虚拟机,发现启动后不能配置IP地址等信息,使用linux命令: “ifup eth0”也不能激活网卡, 而在使用"service network restart&quo ...

  3. Oracle常见错误

    1. Oracle无法动态注册 在SQL*PLUS下多次输入alter system register.监听器的状态始终显示为The listener supports no services. 可查 ...

  4. photoswipe

    allowUserZoom: 允许用户双击放大/移动方式查看图片. 默认值 = trueautoStartSlideshow: 当PhotoSwipe激活后,自动播放幻灯片. 默认值 = falsea ...

  5. Uber司机一周体验记:成单率仅57&percnt;

    虽然注册过程不顺利,但耗时一下午终究还是当上人民优步司机了.而且一周下来也完成了十几单,个中滋味恐怕只有载着陌生的乘客开上路才能体会. 第一单 一位赶去面试的年轻人,刚来北京两年,因为路线不熟坐错了公 ...

  6. &lbrack;河南省ACM省赛-第三届&rsqb; 聪明的kk (nyoj 171)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=171 动态规划: d(i,j) = max{d(i-1, j), d(i, j-1)}+m ...

  7. 自制Linux重命名命令

    相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令.(虽然可以间接的使用mv来实现).下面我就来自己写一个简单的重命名命令. 准备工作 操作系统: Linux内核的系统都 ...

  8. socket和webService的区别

    网络七层协议为:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 socket 只是 java在网络层定义的类,用来实现网络层.上面的各层需要我们自己在程序里实现. 例如端口可以自己定义 . ...

  9. &lt&semi;a&gt&semi;之间怎么放值&lt&semi;&sol;a&gt&semi; 挺简单的,第一次遇到&&num;183&semi;&&num;183&semi;&&num;183&semi;

    需求描述:对列表中的某一列内容添加a标签(其实就是对td标签下添加a标签了). 思路简介:拿到这个我首先的反应就是在td标签对text获取内容的代码中动态拼接<a></a>字符 ...

  10. Android Studio 设置编辑器(Editor)的字体、字体大小

    操作系统:Windows 10 x64 IDE:Android Studio 3.2.1 参考:https://www.cnblogs.com/diyishijian/p/6824328.html 备 ...