GeekBand第十一周笔记

本周的主要内容介绍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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值