码迷,mamicode.com
首页 > 其他好文 > 详细

GeekBand第十一周笔记

时间:2016-07-25 07:05:10      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

本周的主要内容介绍Gradle,NDK,管理依赖和Git等

一、Gradle

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

 Coding只是软件开发中的一个部分
    编译源代码
    运行单元测试和集成测试
    执行静态代码分析,生成分析报告
    创建分布版本
    部署到目标环境
    部署传递过程
    执行冒烟测试和自动功能测试

Gradle是一个插件,是AS自动安装的。

1.点击AS右侧边栏,打开 Gradle, 显示Gradle Project
技术分享

2.结构及文件

2.1 settings.gradle 里 是 include ‘:app’ 中间的app就是 指 app文件夹。

include ‘:app‘

引用 示例1,:app
示例2, 新建一个Module叫mylibrary , 会更改为:mylibrary
示例3, 建一个文件夹library,再在里面建Module, 更改为 :library:testSDK

2.2 build.gradle(Project: Demo) ,是属于整个工程的。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
//    仓库
repositories {
//        设置中央仓库,拉第三方库
jcenter()
//        可以定义自己的私有仓库,如公司内部库
}
//    依赖
dependencies {
        classpath ‘com.android.tools.build:gradle:2.0.0‘

// NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
}
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2.3 build.gradle(Module: app), 是属于 一个Module

apply plugin: ‘com.android.application‘
// 应用的插件, 是一个apk

//针对于android的一些配置
android {
//    根据sdk那个版本编译的
compileSdkVersion 23
//    编译工具的版本号
buildToolsVersion "23.0.3"

defaultConfig {
//        打出来的包名
applicationId "com.exa.demo"
//        支持的最小版本,低于这个版本,手机装不上
minSdkVersion 15
//        目标版本
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
    buildTypes {// 生成不同的apk, realse,debug等
        release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
//     打不同的渠道,如360,应用宝
//        第三方登录,必须用签名的包,才能使用。
}
}

// 依赖,可视化添加。 可依赖第三方库,本地Module。
dependencies {
//    引用 文件树 libs文件夹 ,的jar文件
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])

    testCompile ‘junit:junit:4.12‘
compile ‘com.android.support:appcompat-v7:23.2.1‘
}

dependencies依赖的可视化操作
技术分享

Gradle命令

gradle --help   
gradle --version  版本
gradle build    编译
gradle clean    清理
gradle tasks
gradle tasks --all

gradle以任务来分配,以任务来组织进程

合并规则
多个文件夹中的所有的源代码(src/*/java)都会合并起来生成一个输出
所有的Manifest文件都会合并成一个Manifest文件

Offline, 使用离线模式,使用本地的jar
技术分享

二、NDK

NDK –Native Development Kit 原生开发工具包

为何要用到NDK?

  1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
  2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
  3. 便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用。

    是Android平台支持C/C++开发
    a.一种是使用已经编译好的 .so动态库
    b. 一种是使用C/C++源代码开发
    技术分享

android.developer的网站有NDK官网

1.下载NDK,配置
2.Gradle配置
3.方法调用
4.生成so文件

JNI java原生接口

三、管理依赖

不可避免的Android工程依赖问题
如何使用library 和libs
? jar
? library
? library中的jar

Android Studio 依赖中的三种使用方法

 1.项目依赖,工程 m指 maven,直接在maven库里依赖
 2. 文件依赖, jar, aar
 3. 项目依赖, 依赖本地自己开发的项目

添加依赖的两种方法,代码或可视化界面操作

1.代码,build.gradle(Module: app)中

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    testCompile ‘junit:junit:4.12‘
    compile ‘com.android.support:appcompat-v7:23.2.1‘ //添加到后面
}

2.可视化, Project Structure

技术分享

依赖 jar

1.一种 compile fileTree()
2、选中 上图中的第二个 File dependency。 选择jar文件即可。

方便的 aar引用
aar是什么
和jar的区别
如何生成aar
本地引用aar
maven库

引用aar
1.粘贴到libs文件夹下, 打开 工程的 gradle
2.build.gradle(Project:demo) 内

buildscript {
//    仓库
repositories {
//        设置中央仓库,拉第三方库
jcenter()
//        可以定义自己的私有仓库,如公司内部库
flatDir{
            dirs ‘libs‘
}
    }

3、 build.gradle(Module:app) 内

// 依赖,可视化添加。 可依赖第三方库,本地Module。
dependencies {
//    引用 文件树 libs文件夹 ,的jar文件
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])

    testCompile ‘junit:junit:4.12‘
compile ‘com.android.support:appcompat-v7:23.2.1‘
compile(name:‘aar的名字‘,ext:‘aar‘)
}

2、可视化导入 new module 选择 imort JAR/AAR Package

技术分享

四、Git

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

1.直接记录快照
每个Commit(提交)是一个快照,而非差异比较
变更文件直接copy,未变更文件指向上一个版本
需切换到某个commit时,直接load
空间换时间(而非保存差异,做merge)

2、几乎所有操作本地执行

目前GIT已经可以在windows下使用,主要方法有二:msysgit和Cygwin。Cygwin和Linux使用方法类似,Windows版本的GIT提供了友好的GUI(图形界面),安装后很快可以上手。

? 创建一个版本库:git init

这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。

? 增加内容跟踪信息:git add

? 提交内容到版本库:git commit

? 管理分支:git branch

GeekBand第十一周笔记

标签:

原文地址:http://blog.csdn.net/qq_30154277/article/details/52019994

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!