• Android Studio学习的一些零碎笔记

    各方面了解下
    服务器君一共花费 14.880 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    1. Android Studio 新特性

    Android Studio是基于IntelliJ IDEA的android开发环境。在IntelliJ的基础上增加了一些新的特性:

    • 基于Gradle的构建系统
    • 支持多个apk的编译生成
    • 支持多种Google Services和多种设备类型
    • 支持主题编辑的强大layout editor
    • 更强大的Lint工具,可以检测性能、使用率、版本兼容和其他问题
    • 支持混淆(Proguard)和app签名
    • 内置支持Google Cloud Platform,易于嵌入Google云消息和App引擎

    2. Android Studio vs Eclipse ADT

    目前Android开发最主流的是Eclipse ADT,那么与AS相比,有什么差异呢?

    3. Layout Editor 布局编辑器比 Eclipse要强大得多

    • 可以实时预览布局效果图
    • 布局文件中可以使用颜色选择器选择合适的颜色
    • 可以拖拽控件到布局预览中
    • 具备纠错能力

    4. 用 Gradle 来 Build Project

    build.gradle文件可以配置构建参数。

    • Build variants. 同一个项目可以编译生成多个不同版本号的apk文件。
    • Dependencies. 构建系统自动管理项目的各种依赖。
    • Manifest entries.
    • Signing.
    • Proguard.
    • Testing. 可以生成测试apk,不需要单独创建测试工程。

    5. Project和modules

    一个Android Studio Project包含多个modules。 project是一个完整的Android app. module是能独立编译,测试和调试的组件. module主要包括这3类:

    • JAVA library modules.构建后生成jar包
    • Android library modules.构建后生成AAR包
    • Android application modules.构建后生成apk包

    Project顶层有一个build.gradle文件,每个module也分别含有对应的build.gradle。

    依赖主要包含:

    • Module Dependencies
    • Loacal Dependencies
    • Remote Dependencies

    6. 创建依赖库Module

    • 默认module(app)
    • 选择File -> New Module -> Android Lib ->Next(依赖module: lib)
    • 添加依赖关系.在app/build.gradle中添加依赖关系
    dependencies {
    	compile project(":lib")
    }
    

    7. 构建项目的2种方式

    • 视图方式.Build -> Make Project
    • 命令行方式.项目根目录下执行指令
    chmod +x gradlew
    ./gradlew assembleDebug(若是release包,则执行assembleRelease)
    

    8. build.gradle

    apply plugin: 'android'
    android {
    	compileSdkVersion 19
    	buildToolsVersion "19.0.0"
    
    	defaultConfig {//默认配置
        	minSdkVersion 8
       		targetSdkVersion 19
        	versionCode 1
        	versionName "1.0"
    	}
    
    	buildTypes {//混淆
        	release {
            	runProguard true
            	proguardFiles getDefaultProguardFile('proguard-android.txt'), \
            	'proguard-rules.txt'
        	}
    	}
    
    	signingConfigs {//签名
        	release {
            	storeFile file("myreleasekey.keystore")
            	storePassword "password"
            	keyAlias "MyReleaseKey"
            	keyPassword "password"
        	}
    	}
    }
    
    dependencies {//依赖
    	// Module Dependencies
    	compile project(":lib")
    	// Remote binary dependency
    	compile 'com.android.support:appcompat-v7:19.0.1'
    	// Local binary dependecy
    	compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    签名中,将密码直接写在gradle文件的方式不够安全,以下方式可以避免这个问题:

    从环境变量获取:

    storePassword System.getenv("KSTOREPWD")
    keyPassword System.getenv("KEYPWD")
    

    命令行手动输入:

    storePassword System.console().readLine("\nKeystore password: ")
    keyPassword System.console().readLIne("\nKey password: ")
    
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] Django数据库模型 6 个条目
  2. [PHP程序设计] htaccess 设置技巧 6 个条目
  3. [移动开发] Android Studio里的Gradle 3 个条目
  4. [软件工程与项目管理] 呈现器的布局与绘制 11 个条目
  5. [移动开发] Android根基概念Context 8 个条目
  6. [智力开发与知识管理] 信息的类型与结构 9 个条目
  7. [Python程序设计] Python Web部署的背景知识 9 个条目
  8. [PHP程序设计] PHP数组探索 4 个条目
  9. [软件工程与项目管理] 开始使用Git 3 个条目
  10. [Python程序设计] Django架构流程分析 7 个条目
  11. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  12. [移动开发] Android属性系统Property 9 个条目
窗口 -- [博客]