=========
这里示例创建一个myutils的包,如下图所示:
ok,这个时候你创建好了package,后面就可以准备我们开发好的Library,然后上传到maven仓库,继续耐心看下面的步骤。
创建一个Android Library
===================
新建一个android project,然后new 一个module,选择android library,项目结构如下:
这里我只是为了演示,创建了一个简单的类:
应用bintray插件
===========
如果想通过bintrayUpload命令上传library就必须引用相应的插件,配置如下:
dependencies {
classpath ‘com.android.tools.build:gradle:2.0.0‘
classpath ‘com.github.dcendents:android-maven-gradle-plugin:latest.release‘
classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6‘
}
然后在我们的Library工程的build.gradle引用插件,如下所示:
apply plugin: ‘com.android.library‘
apply plugin: ‘com.github.dcendents.android-maven‘
apply plugin: ‘com.jfrog.bintray‘
其中com.android.library是android的插件,表示它是一个android library。
应用成功后,你会看到插件生成的task,如下图所示:
通过这个task,我们可以将我们的library上传到maven仓库当中,现在还不行,我们还得继续完成我们的配置。
build.gradle配置
==============
我们需要在library工程的build.gradle配置我们的相应的信息,下面是示例代码:
apply plugin: ‘com.android.library‘
apply plugin: ‘com.github.dcendents.android-maven‘
apply plugin: ‘com.jfrog.bintray‘
// 这个version是区分library版本的,因此当我们需要更新library时记得修改这个version
version = "1.0.0"
android {
compileSdkVersion 19
buildToolsVersion "23.0.3"
resourcePrefix "devilwwj_"
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName version
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
}
}
}
dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
testCompile ‘junit:junit:4.12‘
}
def siteUrl = ‘https://github.com/devilWwj/Android-Tech‘ // 项目的主页
def gitUrl = ‘https://github.com/devilWwj/Android-Tech.git‘ // Git仓库的url
group = "com.devilwwj.library" // Maven Group ID for the artifact,一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging ‘aar‘
// Add your description here
description ‘my utils for test‘
name ‘Android Commonly used utils‘ //项目描述
url siteUrl
// Set your license
licenses {
license {
name ‘The Apache Software License, Version 2.0‘
url ‘http://www.apache.org/licenses/LICENSE-2.0.txt‘
}
}
developers {
developer { // 开发者信息
id ‘YOUR_ID‘
name ‘YOUR NAME‘
email ‘YOUR EMAIL‘
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = ‘sources‘
}
task javadoc(type: Javadoc) {
options.encoding = ‘UTF-8‘
source = ‘src/main/java‘
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = ‘javadoc‘
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
// 加载本地配置
properties.load(project.rootProject.file(‘local.properties‘).newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = [‘archives‘]
pkg {
repo = "maven" //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库
name = "myutils" //发布到Bintray上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
面试过程一定要有礼貌!即使你觉得面试官不尊重你,经常打断你的讲解,或者你觉得他不如你,问的问题缺乏专业水平,你也一定要尊重他,谁叫现在是他选择你,等你拿到offer后就是你选择他了。
另外,描述问题一定要慢!不要一下子讲一大堆,慢显得你沉稳、自信,而且你还有时间反应思路接下来怎么讲更好。现在开发过多依赖ide,所以会有个弊端,当我们在面试讲解很容易不知道某个方法怎么读,这是一个硬伤......所以一定要对常见的关键性的类名、方法名、关键字读准,有些面试官不耐烦会说“你到底说的是哪个?”这时我们会容易乱了阵脚。正确的发音+沉稳的描述+好听的嗓音决对是一个加分项!
最重要的是心态!心态!心态!重要事情说三遍!面试时间很短,在短时间内对方要摸清你的底子还是比较不现实的,所以,有时也是看眼缘,这还是个看脸的时代。
希望大家都能找到合适自己满意的工作!
如果需要PDF版本可以在GitHub中自行领取!
进阶学习视频
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题?(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
标签: