Android开发入门 - 环境搭建 & 'He
2018-12-26 本文已影响10人
blueMononoke
1 安装工具
1.1 JDK
1.1.1 安装
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
先点击Accept License Agreement 同意,然后选择下载:
jdk.png1.1.2 配置环境变量
Windows环境:
JAVA_HOME:D:\Java\jdk1.8.0_25 # java的安装路径
CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin # add
Mac:
在系统环境配置文件里添加:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home
export PATH=$PATH:JAVA_HOME/bin
1.2 Android Studio
1.2.1 安装
https://developer.android.google.cn/studio/
根据你的系统选择相应版本。
目前使用版本为3.2。
1.2.2 配置
a. 设置Project Structure
打开Studio界面
ProjectStructure.png需要设置的是SDK和JDK路径:
SDKLocation.pngb. 安装Android SDK & tools
Download
在sdk Manager中安装或更新需要的Android sdk。
sdkManager.png sdkManager2.png sdkManager3.png当前使用工具版本:
- SDK Build-tools 28.0.3
- SDK Platform-tools 28.0.1 +
- SDK Tools: 26.1.1 +
- Support Library rev 23.2.1 +
设置环境PATH
以Mac环境为例:
设置Android sdk的安装目录为:/Users/Izumi/Android/android-sdk-macosx,
在系统配置文件添加:
export PATH=$PATH:/Users/Izumi/Android/android-sdk-macosx/tools
export PATH=$PATH:/Users/Izumi/Android/android-sdk-macosx/build-tools/27.0.3
export PATH=$PATH:/Users/Izumi/Android/android-sdk-macosx/platform-tools
Windows环境,添加Android sdk路径到系统PATH里即可。
2. 新建工程
2.1 步骤
new1.png new2.png new3.png new4.png自定义Activity和layout name。
new5.png点击Finish后,就新建好工程了。
2.2 工程结构
project.png2.2.1 结构说明
- java: 代码;
- res: 资源;
- AndroidManifest.xml: Android各组件的配置文件。
- gradle目录:gradle/wrapper/gralde-wrapper.properties 文件中声明了它指向的目录和版本,新建工程后会花一定时间下载指定的gradle版本。
- app/build.gradle: app工程的gradle构建脚本。
- 根目录下build.gradle: 整个工程的gradle构建脚本。
详细文件说明,参考下图:
详细说明.jpg2.2.2 整个项目gradle配置文件
buildscript {
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
}
3. 简单布局
3.1 常见UI控件
所有的控件都是View的子类。
- TextView
- EditText
- Button
- ImageView
- ProgressBar
3.2 设计布局
3.2.1 手动写布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginBottom="64dp"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_gravity="center"
android:text="Hello World!"
android:textSize="24dp"
android:textColor="@android:color/white"
android:background="@android:color/darker_gray"
android:gravity="center"
tools:layout_editor_absoluteX="42dp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="350dp"
android:orientation="horizontal"
android:background="@android:color/holo_blue_bright"
>
<Button
android:id="@+id/btHello"
android:layout_width="72dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_gravity="top|center"
android:text="ok"
android:textSize="18dp"
android:background="@android:color/holo_purple"
android:gravity="center"
/>
<ImageView
android:id="@+id/ivLogo"
android:layout_width="300dp"
android:layout_height="280dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_gravity="center"
android:src="@drawable/cat"
android:scaleType="center"
android:background="@android:color/darker_gray"
/>
</LinearLayout>
</LinearLayout>
效果:
layout.png3.2.2 使用Palette
在布局界面,使用Palette,直接拖动添加UI控件:
addUI.png在右侧的Attributes中,可以直接修改该控件的所有属性:
attributes.png4. 打包
测试的话,可以开个模拟器或者连手机,run起来就好了!
如果发签名包的话,参考以下配置。
4.1 配置签名信息
工程下添加local.properties文件,填写key信息:
sdk.dir=/Users/Izumi/Android/android-sdk-macosx
key.store=/Users/Izumi/xxx.keystore
key.alias=xxx.keystore
key.store.password=xxxxxx
key.alias.password=xxxxxx
在app/build.gradle,配置如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
defaultConfig {
applicationId "com.isa.myapplication"
minSdkVersion 17
targetSdkVersion 26
versionCode 1000000
versionName "1.0.0"
}
signingConfigs {
release {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
storeFile file(properties.getProperty('key.store'))
storePassword properties.getProperty('key.store.password')
keyAlias properties.getProperty('key.alias')
keyPassword properties.getProperty('key.alias.password')
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
// 如果想自定义生成的包名,添加这段
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk_渠道名-版本号-版本名称-编译时间.apk
def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
debug {
minifyEnabled false
debuggable true
signingConfig signingConfigs.debug
}
}
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
4.2 打包命令
./gradlew build // 检查依赖并编译打包,debug、release环境的包都会打出来
./gradlew assembleDebug // 编译并打Debug包
./gradlew assembleRelease // 编译并打Release的包
完成后,会在app/build/outputs/apk目录下找到对应的apk。
5 关于Gradle
gradlew,代表gradle wrapper,意思是gradle的一层包装。
基本命令:
- ./gradlew -v // 版本号
- ./gradlew clean // 清除app目录下的build文件夹
- ./gradlew installRelease // release模式打包并安装
- ./gradlew uninstallRelease // 卸载Release模式包