gradle入门,gradle和maven有什么用?分别有什么区别
gradle入门,gradle和maven有什么用?分别有什么区别详细介绍
本文目录一览: gradle 内置了哪些tasks
1. 为什么选择Gradle?
2. 简单入门
2.1 使用Intellij Idea创建gradle项目
首先在Idea中启用Gradle支持:Settings->Plugins: Gradle
然后创建一个gradle项目或模块,会发现目录结构和maven的很像,其中build.gradle是gradle的配置文件,类似于maven中pom.xml文件,以下是build.gradle的简单示例:
apply plugin: 'java'
group = 'org.yousharp'
version = '1.0-SNAPSHOT'
sourceCompatibility = 1.7
targetCompatibility = 1.7
repositories {
mavenCentral()
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
compile group: 'com.google.guava', name: 'guava', version:'17.0'
compile group: 'redis.clients', name: 'jedis', version:'2.6.0'
testCompile group: 'junit', name: 'junit', version:'4.11'
}
插件(plugin):是gradle的一种扩展,gradle预定义了很多插件,常见的如java插件、war插件等;java插件中定义了一些有用的task,如编译源码、执行单元测试、生成jar包、约定默认的目录结构等; repositories定义仓库,dependencies定义项目的依赖,比maven的XML定义更简洁;
那么,如何编译、测试,以及运行gradle的项目呢?
刚才说到java插件预定义了很多task,其中就包括编译、测试、生成jar包等task,可以在命令行通过 $ gradle tasks 查看项目已定义的所有task以及含义,如java插件中常用的task有:
+ assemble: 编译
+ build:编译并执行测试
+ clean:删除build目录
+ jar: 生成jar包
+ test:执行单元测试
2.2 将Java项目从maven迁移到gradle
如何将一个java项目从maven迁移到gradle呢?gradle集成了一个很方便的插件:Build Init Plugin,使用这个插件可以很方便地创建一个新的gradle项目,或者将其它类型的项目转换为gradle项目。
要将maven项目转换为gradle项目,只需要在项目的pom文件所在的目录下执行以下命令:
$ gradle init --type pom
上面的命令会根据pom文件自动生成gradle项目所需的文件和配置,然后以gradle项目重新导入即可。
入门开发第一个程序
开发第一应用可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击StartanewAndroidStudioProject创建工程:
接下来需要输入应用名称(第一个字母要大写)、公司域以及指定应用存放目录,点击Next按钮进入下一步:
如果第一个字母不是大写,会提示:Theapplicationnameformostappbeginswithanuppercaseletter
接下来需要选择开发什么设备(可选“手机和平板”、“穿戴(Wear)”、“TV”,“车载(AndroidAuto)”等)上的应用,以及确定最小SDK的版本号。
MinimumSDK的作用是在应用安装前,会对设备的Android版本做校验,如果设备的Android版本低于这个最小版本会阻止用户安装应用。
如果不知道怎么选择最小版本可以点击Helpmechoose看看每个版本的分布图表和描述:
继续点击Next按钮进行下一步,我们需要通过形象友好的GUI模板,来选择我们第一个Activity的样式:
然后需要给Activity和Layout起一个名字。
点击Finish按钮后,AndroidStudio开始创建并编译应用。编译结束后,我们就可以看到AndroidStudio的IDE界面了。
从图上可以看出AndroidStudio已经帮我们将工程组织的很好了。
界面介绍如上图所示,我将界面分为5个区域做详细的讲解:
区域1介绍说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML5a24778.PNG
这个区域是运行和调试相关的操作。
1、编译2中显示的模块
2、当前项目的模块列表
3、运行2中显示的模块
4、调试2中显示的模块
5、测试2中显示的模块代码覆盖率
6、调试安卓运行的进程
7、重新运行2中显示的模块
8、停止运行2中显示的模块
区域2介绍说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML5a94cd5.PNG
这个区域主要是和Android设备和虚拟机相关的操作。
1、虚拟设备管理。
2、同步工程的Gradle文件,一般在Gradle配置被修改的时候需要同步一下。
3、项目结构,一些项目相关的属性配置。
4、AndroidSDK管理
5、Genymontion模拟器(需要装Genymontion插件,安装篇[模拟器安装]部分)
区域3介绍说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML5bde3b7.PNG
这个区域主要是工程文件资源等相关的操作。
1、展示项目中文件的组织方式,默认是以Android方式展示的,可选择“Project、Packages、Scratches、ProjectFiles、Problems”等展示方式。平时用的最多的就Android和Project两种。
2、定位当前打开文件在工程目录中的位置。
3、关闭工程目录中所有的展开项。
4、额外的一些系统配置,点开后是一个弹出菜单:
image
AutoscrolltoSource和AutoscrollfromSource两个勾选起来后,AndroidStudio会自动定位当前编辑文件在工程中的位置,用起来会很爽。其他功能大家可以自己摸索摸索。
区域4介绍说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML5cee482.PNG
这个区域主要是用来编写代码和设计布局。
1、已打开的文件的Tab页。(在Tab页上按下Ctrl键+点击鼠标会出现一个弹出菜单会有惊喜哦!)
2、UI布局预览区域。
3、布局编辑模式切换,对于一些老鸟来说更喜欢通过Text来编辑布局,新手可以试试Design编辑布局,编辑后再切换到Text模式,对于学习Android布局设计很有帮助。
区域5介绍这个区域大部分是用来查看一些输出信息的。
1、终端-喜欢命令行操作的伙伴不用额外启动终端了。
2、监控-可以查看应用的一些输出信息。
3、信息-工程编译的一些输出信息。
4、运行-应用运行后的一些相关信息。
5、TODO-标有TOTO注释的列表。
6、事件-一些事件日志。
7、Gradle控制台,通过这个可以了解Gradle构建应用的时候一些输出信息。
AndroidStudio目录结构说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML6038007.PNG
1、Gradle编译系统,版本由wrapper指定
2、AndroidStudioIDE所需要的文件
3、应用相关文件的存放目录
4、编译后产生的相关文件
5、存放相关依赖库
6、代码存放目录
7、资源文件存放目录(包括:布局、图像、样式等等)
8、应用程序的基本信息清单,描述哪些个组件是存在的
9、git版本管理忽略文件,标记出哪些文件不用进入git库中
10、AndroidStudio的工程文件
11、模块的gradle相关配置
12、代码混淆规则配置
13、工程的gradle相关配置
14、gradle相关的全局属性设置
15、本地属性设置(key设置,androidsdk位置等属性)
应用开发调试说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML60a7a4d.PNG
如上图1所示在需要调试的行号处点击设置断点,然后点击2所示的Debug按钮(或直接按下Shift+F9快捷键)开始调试。
如上图所示AndroidStudio下方出现了调试视图。
1、当前程序停留的代码行
2、调试相关的一些按钮
3、程序调用栈区,该区域显示了程序执行到断点处所调用过的所有方法,越下面的越早被调用。
4、局部变量观察区
5、用户自定义变量观察区
1、StepOver(F8)-程序向下执行一行,如果当前行有方法调用,这个方法执行完毕返回,然后到下一行。
2、StepInto(F7)-程序向下执行一行,如果当前行有用户自定义方法(非官方类库方法)调用,则进入该方法。
3、ForceStepInto(Alt+Shift+F7)-程序向下执行一行,如果当前行有方法调用,则进入该方法。
4、StepOut(Shift+F8)-如果在调试的时候你进入了一个方法,并觉得该方法没有问题,你就可以使用StepOut跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
5、DropFrame-点击该按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
6、RuntoCursor(Alt+F9)-一直运行到光标所在的位置。
7、ResumeProgram(F9)-一直运行程序直到碰到下一个断点。
8、ViewBackpoints(Ctrl+Shift+F8)-查看你设置过的所有断点并可以设置断点的一些属性
9、MuteBackpoints-选中后所有的断点别设置成无效状态。再次点击可以重新设置所有断点有效。
在点击了ViewBackpoints按钮后,会出现一个断点属性窗口,可以对断点进行一些更高级的设置。
说明:C:\Users\wqm\AppData\Local\Temp\SNAGHTML6dbfefa.PNG
1、列出了所有程序中设置的断点
2、可以输入条件,在条件成立后断点才起作用(例如:在输入框中输入i==8),这种带条件断点在实际开发过程中非常有用。也可以通过右键点击断点来设置条件断点,如下图:
好了,到这里调试相关的功能都介绍完了。
应用打包签名基础一个AndroidStudio项目中,会存在多个.gradle文件。其中,project目录下存在一个build.gradle文件和每一个module会存在一个build.gradle文件。
工程中的build.gradle
buildscript{repositories{jcenter()//声明使用maven仓库}dependencies{//依赖android提供的2.1.0-alpha5的gradlebuildclasspath'com.android.tools.build:gradle:2.1.0-alpha5'}}//为所有的工程的repositories配置为jcentersallprojects{repositories{jcenter()}}//清楚工程的任务taskclean(type:Delete){deleterootProject.buildDir}模块中的build.gradle
//这表示该module是一个appmoduleapplyplugin:'com.android.application'android{//基于哪个版本编译compileSdkVersion23//基于哪个构建工具版本进行构建的buildToolsVersion"23.0.3"//缺省配置主要包括:应用ID,最小SDK版本,目标SDK版本,应用版本号、应用版本名defaultConfig{applicationId"open_open.com.helloworld"minSdkVersion10targetSdkVersion23versionCode1versionName"1.0"}//buildTypes是构建类型,常用的有release和debug两种,可以在这里面启用混淆,启用zipAlign以及配置签名信息等。buildTypes{release{minifyEnabledfalseproguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'}}}//dependencies它定义了该module需要依赖的jar,aar,jcenter库信息。dependencies{compilefileTree(dir:'libs',include:['*.jar'])testCompile'junit:junit:4.12'compile'com.android.support:appcompat-v7:23.2.1'}打包签名选择Build->GenerateSignedAPK...,如下图:
在弹窗中一直Next直到下面这个界面:
在没有Key的情况下,我们可以先点击Createnew...按钮来创建一个Key,创建过程很简单,如下图:
如果你已经存在Key了,那就点击Chooseexisting...按钮指定.jks文件位置,如下图:
输入Keystorepassword和Keypassword(在创建Key的时候输入的那两个密码),点击Next按钮:
接下来就点击Finish按钮,坐等AS打包签名完成,签名完成后AS会提示我们:
点击ShowinExplorer,可以找到我们签名好的APK文件:
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中...原文链接:
idea gradle 怎么配置jar依赖
1. 选择Gradle 2. 简单入门 2.1 使用Intellij Idea创建gradle项目 首先Idea启用Gradle支持:Settings->Plugins: Gradle 创建gradle项目或模块发现目录结构maven像其build.gradlegradle配置文件
gradle和maven有什么用?分别有什么区别
都是自动构建工具,但是完全是两个产品。Maven应该目前在Java企业级开发中占的比重比较大,Gradle是后起之秀,Google的Android Studio主推的就是Gradle。
Gralde吸收了Maven与Ant的优点,可以列举出很多。然而大量的实践与思考发现Maven相比于Gradle的不灵活,正是它的优点,避免了大量聪明的Build Engineer的出现。
1.面向未来,就目前的趋势而言,gradle或者maven正逐渐演化为一种标准。尤其是国际上。比如你去spring官网看demo,它们一般提供基于这两种的源码,还有android开发,很多流行的库,demo演示都是通过gradle搭建的,你不懂gradle就很难跟它们接轨。这显然是固步自封的表现。
2.极细的粒度,给你更大的发挥空间。你用eclipse的run的时候,你并不知道eclipse是怎么执行的,即便你知道,但是不可能轻易结合自己的代码逻辑。举个例子:我需要在run java项目的时候,把flex项目先编译好,放到web目录下。类似于这样,大部分情况下,光靠IDE自己的功能就力不从心了。 但是gradle给了你两个维度的机会,让你能干的更多。 第一 task的dependsOn、finalizedBy 让你可以把各种工作串行连接;第二 绝大多数插件是开源的,也就是用的不爽,你自己可以改,那样就更灵活了。当然这只是冰山一角。
3.协作,一个个build文件,描述项目依赖,插件,显然更具有一致性。再也不需要把那些讨厌的jar包提交到git了,要知道git里面存放二进制简直就是灾难。还有,甚至可以通过gradle跟,非程序员交流,比如你想让美工可以自己测试修改并在项目里面看最终效果。这时候你让她装个idea,估计她会很不情愿。但是,你可以通过gradle,告诉她,把素材覆盖到某某文件之后,只要在控制台来个gradle run,刷新页面就能看到效果了。(仅是个例子,可能不严谨)
4.布道groovy,gradle所使用的语言,也许groovy并不能算是jvm里的屠龙刀,但是也绝对可以算是一把锋利的匕首。相信我,作为一个java程序员,试着在代码中融入groovy,一定乐趣无限。尤其是还能用在android项目。
Gradle和Maven都是项目自动构建工具,编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,所以,你要运行测试,构建分布、分析代码质量、甚至为不同目标环境提供不同版本,然后部署。整个过程进行自动化操作是很有必要的。
整个过程可以分成以下几个步骤:
编译源代码
运行单元测试和集成测试
执行静态代码分析、生成分析报告
创建发布版本
部署到目标环境
部署传递过程
执行冒烟测试和自动功能测试
如果你手工去执行每一个步骤无疑效率比较低而且容易出错,有了自动化构建你只需要自定义你的构建逻辑,剩下的事情交给工具去完成。
虽然两者都是项目工具,但是maven现在已经是行业标准,Gradle是后起之秀,很多人对他的了解都是从android studio中得到的,Gradle抛弃了Maven的基于XML的繁琐配置,众所周知XML的阅读体验比较差,对于机器来说虽然容易识别,但毕竟是由人去维护的。取而代之的是Gradle采用了领域特定语言Groovy的配置,大大简化了构建代码的行数,比如在Maven中你要引入一个依赖:
2.3
com.google.code.kaptcha
kaptcha
${kaptcha.version}
jdk15
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-context
junit
junit
然后我将其转换成Gradle脚本,结果是惊人的:
dependencies {
compile('org.springframework:spring-core:2.5.6')
compile('org.springframework:spring-beans:2.5.6')
compile('org.springframework:spring-context:2.5.6')
compile('com.google.code.kaptcha:kaptcha:2.3:jdk15')
testCompile('junit:junit:4.7')
}
注意配置从原来的28行缩减至7行!这还不算我省略的一些父POM配置。依赖的groupId、artifactId、 version,scope甚至是classfier,一点都不少。较之于Maven或者Ant的XML配置脚本,Gradle使用的Grovvy脚本杀伤力太大了,爱美之心,人皆有之,相比于七旬老妇松松垮垮的皱纹,大家肯定都喜欢少女紧致的脸蛋,XML就是那老妇的皱纹。
Gradle给我最大的有点是两点。其一是简洁,基于Groovy的紧凑脚本实在让人爱不释手,在表述意图方面也没有什么不清晰的地方。其二是灵活,各种在Maven中难以下手的事情,在Gradle就是小菜一碟,比如修改现有的构建生命周期,几行配置就完成了,同样的事情,在Maven中你必须编写一个插件,那对于一个刚入门的用户来说,没个一两天几乎是不可能完成的任务
Android,Studio教程从入门到精通 Android从入门到精通
经过2年时间的研发,Google终于正式发布了面向Android开发者的集成开发环境Android Studio 1.2(稳定版)。Android Studio是Google开发的一款面向Android开发者的IDE,支持Windows、Mac、Linux等操作系统,基于流行的Java语言集成开发环境IntelliJ搭建而成。该IDE在2013年5月的Google I/O开发者大会上首次露面,当时的测试版各种莫名其妙的Bug,但是14年12月8日发布的版本是稳定版。Android Studio 1.0推出后,Google官方将逐步放弃对原来主要的Eclipse ADT的支持,并为Eclipse用户提供了工程迁移的解决办法。不过相信作为Developer的你上手AS 1.0以后你再也不愿意使用原来苦逼的Eclipse+ADT了,你会被AS的各种强大所吸引。
下载安装
下载AS前先说下,AS安装包分为含SDK版本和不含SDK版本下载,如果你有SDK,那么完全可以下载不含SDK版本;
不过下载了含SDK版本也没事,安装时选择自定义SDK也可以,安装后重新指定SDK路径也可以,总之看个人爱好喽。先吐槽下天朝的强大吧,不得不拜服天朝的墙。如果你有梯子请去 Android Developer下载最新版的AS安装包,如果你没有梯子那也有个办法,就是去Android Studio中文社区官网下载你的平台需要的安装包。
下载下来以后安装的过程可以忽略了吧,能安装的都是程序猿吧,所以安装这点就不说了,注意已经正确安装配置了JDK。
安装好了以后首次运行AS可能一直停在Fetching Android SDK component information。如下界面:
这是因为天朝的墙真的太高太厚把首次运行更新SDK给墙了。解决办法就是关闭安装向导,如果无法关闭可以在任务管理器中手动关掉进程(Ctrl+Alt+Del启动任务管理器),然后打开AS安装目录下的bin目录里面的idea.properties文件,添加一条禁用开始运行向导的配置项:
disable.android.first.run=true
然后再启动程序就会打开项目向导界面,这个时候如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android SDK的缘故。这时候一般有两种做法:
然后再启动程序就会打开项目向导界面,这个时候如果点击Start a new Android Studio project是没有反应的,并且在Configure下面的SDK Manager是灰色的,这是因为没有安装Android SDK的缘故。这时候一般有两种做法:
自己没有SDK,需要从网络下载;
打开向导的Configure-Settings,在查找框里面输入proxy,找到下面的HTTP Proxy,设置代理服务器,并且将Force https://… sources to be fetched using https://选中,然后退出将上面在idea.properties配置文件中添加的那条配置项注释掉重新打开Android Studio等刚开始的向导把Android SDK下载安装完成就可以了。
自己有SDK,重新指定SDK路径;
打开向导的Configure->Project Defaults->Project Structure,在此填入你已有的SDK路径。
此时重启AS就可以在向导里新建Android工程喽。至此整个安装过程结束。
基本使用介绍
首先新建工程,输入工程名和主包名和存储路径;
点击next到如图步骤: 上图中首先你可选择你的App要适配的设备是Wear还是Mobile还是TV。在你新建App选择最低适配版本时,强大的AS会给你一些有用的统计提示,如图描述了当前版本的用户情况,点击Help me choose后弹出如下更加形象的分布图表描述:
爱不释手的亮点就是这么一步一步比Eclipse强大的,这只是一些不值得一提的小点而已,强大的功能还在后面。继续点击Next选择形象友好的GUI模板,点击完成进入工程初始化过程。
第一次安装工程初始化时由于需要联网下载gradle会比较慢,不过有时候不是第一也会慢,工程依赖的gradle版本不匹配时也会自动重新下载;
我的初始化很快,原因是我本地的gradle-2.2-all.zip之前已经下载OK的。至于啥时gradle后文会有说明。这儿只是告诉你若果你看到卡一会儿时正常的。
接下来进入到了工程界面下:
这个创建过程可比Eclipse上长的多。主要是因为从gradle上下载。gradle也可以手动离线下载好放在对应目录下。工程的结构和 Eclipse上的不同,src下分为java和res。AS是基于idea,而idea和eclipse有大的区别,有好处也有不好的地方,在一段时间里,idea被认为是开发java最好用强大的ide工具,所以AS新建的时候有new application和new module开发。idea没有工作空间这样的说法。这就是Eclipse用户切换过来第一个比较不适应的地方。
具体说就是:
android studio是单工程的开发模式
android studio中的application相当于eclipse里的workspace概念
android studio中的module相当于eclipse里的project概念
有了如上三条概念自己手动创建摸索下,相信聪明的你自然就明白咋回事了吧。
接下来看一些工欲善其事必先利其器的基本高频率实用设置:
中文乱码—–在窗口中,找到IDE Settings->Appearance,在右侧勾选上“Override default fonts by”,然后在第一个下拉框中选择字体为“simsun”,然后apply,重启IDE,就好了。
设置快捷键—–在settings窗口中,找到IDE Settings->keymap,右侧打开的就是快捷键了。右键单击要修改的快捷键,会弹出一个菜单,选择“Add keyboard shortcut”就可以修改快捷键了。删除的话,在弹出的菜单中选择remove XXX即可。特别说明,在AS的快捷键设置里可以直接设置使用Eclipse快捷键还是别的IDE快捷键。如果你热衷Eclipse那么也可设置成Eclipse的快捷键。
修改主题—–在IDE Settings->Appearance,右侧的Theme选择自己喜欢的主题即可。个人比较喜欢Darcula主题,也就是如上截图样式。
如何将Eclipse工程导入AS使用—–选择File->Import Project,在弹出的菜单中选择要导入的工程即可,选择好以后就直接next,在第二个窗口中也选择默认的第一个选项就可以。需要注意的是,在AS中,有两种工程,一个是Project,一个是Module,上面已经细说过了。
导入jar包—–选择File->Projcet Structure,在弹出的窗口中左侧找到Libraries并选中,然后点击“+”,并选择Java就能导入Jar包了。或者直接拷贝jar文件到项目的libs文件夹下,然后运行:Sync Project with Gradle Files。然后clean project重新编译。
删除项目—–AS对工程删除做了保护机制,默认你在项目右键发现没有删除选项。你会发现你的module上面会有一个小手机,这是保护机制。删除的第一步就是去掉保护机制,也就是让手机不见,具体做法就是鼠标放在工程上右键->open module setting,或者F4进入如图界面,选中你要删除的module,然后点击减号,这样就取消了保护机制,然后回到项目工程右键就可发现删除选项。注意:删除会将源文件删除。
这里写图片描述
到此为止AS的基本情况相信你已经有个大致了解了。具体比Eclipse的优势体现在如下几点:
AS是Google专门为Android基于IntelliJ IDEA打造的利器。亲生的永远是最好的,只是现在还在成长中而已。
AS在速度上不管哪一个方面都比Eclipse快。
Darcula主题UI简直就是极客范,帅爆了。
强大的智能提示补全功能在写代码时简直比Eclipse高效率N倍。
智能保存,不需要Ctrl + S。效率会大大提升。
整合Gradle构建工具,Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常牛逼。
UI编辑器简直比Eclipse高效N倍,自带了多设备的实时预览,简直是神器。多语言适配点击地球直接输入,再也不用比较那个string没有翻译了。
内置终端直接替代cmd命令行,一个IDE全部搞定。
完善的插件系统,如Git、Markdown、Gradle等,直接搜索下载。
版本控制系统,安装的时候就自带GitHub, Git, SVN等流行的版本控制系统,可以直接check out你的项目,边写代码边右键可以直接具备BCompare功能与其他版本进行对比修改。
总之就一句话,相信我,若果你和我一样是Eclipse用户切换过来,那么你绝对不会再切换回去,你会爱上AS的。
新建工程项目后AS的Product目录结构如下所示:
.idea://AS生成的工程配置文件,类似Eclipse的project.properties。
app://AS创建工程中的一个Module。
gradle://构建工具系统的jar和wrapper等,jar告诉了AS如何与系统安装的gradle构建联系。
External Libraries://不是一个文件夹,只是依赖lib文件,如SDK等。
新建工程项目后AS的Module目录结构如下所示:
build://构建目录,相当于Eclipse中默认Java工程的bin目录,鼠标放在上面右键Show in Exploer即可打开文件夹,
编译生成的apk也在这个目录的outs子目录,不过在AS的工程里是默认不显示out目录的,就算有编译结果也
不显示,右键打开通过文件夹直接可以看。
libs://依赖包,包含jar包和jni等包。
src://源码,相当于eclipse的工程。
main://主文件夹
java://Java代码,包含工程和新建是默认产生的Test工程源码。
res://资源文件,类似Eclipse。
layout://App布局及界面元素配置,雷同Eclipse。
menu://App菜单配置,雷同Eclipse。
values://雷同Eclipse。
dimens.xml://定义css的配置文件。
strings.xml://定义字符串的配置文件。
styles.xml://定义style的配置文件。
......://arrays等其他文件。
......://assets等目录
AndroidManifest.xml://App基本信息(Android管理文件)
ic_launcher-web.png://App图标
build.gradle://Module的Gradle构建脚本
Android Studio调试其实也非常方便,一般问题直接通过AS的DDMS的Logcat就可以搞定。AS支持类似Eclipse的DDMS的所有功能。这里要说的是疑难问题的调试方式,即断点调试。
首先先编译好要调试的程序。 如上图2所示在行号处点击设置断点。然后如1所示点击开启调试会话。 如上图所示,IDE下方出现Debug视图,1指向的是现在调试程序停留的代码行,2区域是程序的方法调用栈区。在这个区域中显示了程序执行到断点处所调用过的所用方法,越下面的方法被调用的越早。由此顺序想必有些Android深入功底了解一点Android系统启动流程的就知道这几个方法咋回事,怎么到Activity的onCreate的。哈哈,说到系统了。不扯了。3是一些调试按钮,快捷键放在上面直接会显示。4和5是一些变量观察区。
上图中:
点击1指向的按钮,程序向下执行一行,如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。
点击2指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。
点击3钮在调试的时候能进入任何方法。
点击4的作用是如果在调试的时候你进入了一个方法(如debugFunc),并觉得该方法没有问题,你就可以使用4跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。
点击5指向的按钮后,你将返回到当前方法的调用处重新执行,并且所有上下文变量的值也回到那个时候。只要调用链中还有上级方法,可以跳到其中的任何一个方法。
如上图设置多个断点,开启调试。想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。点击箭头2指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性,如下图所示。调试开始后,在 Variables区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue…)。这个功能可以更加快速的检测你的条件语句和循环语句。点击箭头3加号或者在调试的代码变量上右键添加watcher即可查看跟踪变量值。
上图箭头1指向的是你曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 index==5)。结束调试后,应该在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。
以上便是AS的一些调试使用技巧。
Android Studio构建系统基础
基础知识
项目创建成功后会自动下载Gradle,这个过程特别慢,建议FQ。下载的Gradle在Windows平台会默认在 C:Documents and Settings用户名>.gradlewrapperdists目录,这个目录下有个gradle-x.xx-all的文件夹,。也可以自己手动到Gradle官网下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下。
每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是apply plugin。注意区分不同位置的build.gradle文件。
AS的工程根目录下的build.gradle文件:
buildscript { //设置脚本的运行环境 repositories { //支持java依赖库管理(maven/ivy等),用于项目的依赖 //mavenCentral() //仅仅是不同的网络仓库而已 jcenter() //推荐使用这个仓库 } //依赖包的定义。支持maven/ivy、远程、本地库、单文件,前面定义了repositories{}jcenter库,使用jcenter的依赖只需要按照 //类似于com.android.tools.build:gradle:1.0.0-rc2,gradle就会自动的往远程库下载相应的依赖。 dependencies { classpath 'com.android.tools.build:gradle:1.0.0-rc2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } //多项目的集中配置,多数构建工具,对于子项目的配置,都是基于继承的方式。Gradle除了提供继承方式设置子项目,还提供这种配置 allprojects { repositories { jcenter() } }
AS的工程根目录下的settings.gradle文件:
include ':app' //module include ':my_lib' //module(build as lib)
AS的工程根目录下的Module的build.gradle文件(此处以一个简单的Lib module的gradle为例):
//plugin在AS里取值一般为'com.android.library'或者'com.android.application' apply plugin: 'com.android.library' //构建为lib android { compileSdkVersion 17 //编译需要SDK版本 buildToolsVersion "19.1.0" //SDK Manager确定本地安装该版本才可以 defaultConfig { minSdkVersion 8 //最小版本 targetSdkVersion 17 //目标版本 } buildTypes { //编译项 release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } dependencies { //依赖支持 compile 'com.android.support:support-v4:18.+' }
Gradle打包APP签名
默认情况下,debug被配置成使用一个debug keystory。debug keystory使用了默认的密码和默认key及默认的key密码。debug构建类型会自动使用debug签名配置。在你的Module的build.gradle文件中添加:
android { ...... signingConfigs { myConfig{ storeFile file("yanbober.keystore") storePassword "gradle" keyAlias "gradle" keyPassword "gradle" } } buildTypes{ release { runProguard true zipAlignEnabled true // 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.myConfig } } }
虽然经常使用项目根目录的相对路径作为keystore的路径,但是也可以使用绝对路径,尽管这并不推荐(除了自动创建出来的debug keystore)。运行gradle clean gradle build即可生成签名混淆对齐的app。
Gradle构建Android应用多渠道包(批量打包)
Android应用的发布需要面对各种各样的市场,我们称之为渠道。通常作为开发者我们需要知道应用是从哪个渠道下载的。这种统计信息一般常用的是百度统计或者友盟统计。这里举例时使用友盟统计为例说明问题。原理是Gradle的Manifest Merger。
在AndroidManifest.xml里配置所谓的PlaceHolder。
在模块build.gradle文件的defaultConfig加上PlaceHolder,作用是声明CHANNEL_VALUE是可替换值的PlaceHolder,同时为其设置yanbober默认值。
android { ...... defaultConfig { ...... manifestPlaceholders = [ CHANNEL_VALUE:"yanbober" ] } }
在模块的build.gradle文件里添加ProductFlavors配置。ProductFlavors其实就是可定义的product特性,与Manifest Merger使用就可以在一次编译过程中产生多个具有自己特性配置的版本。下面这个配置的作用就是为每个渠道包产生不同的CHANNEL_VALUE的值。
android { ...... defaultConfig { ...... manifestPlaceholders = [ CHANNEL_VALUE:"yanbober" ] } productFlavors { yanbober{} wandoujia{} xiaomi{} baidu{} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [ CHANNEL_VALUE:name ] } }
批量生成多渠道包:进入工程目录下运行gradlew assembleRelease。可以看到编译一共产生了4个apk,分别对应在productFlavors段定义的4个渠道。反编译打开 AndroidManifest.xml就会发现CHANNEL这一段的配置已经被修改。
生成单个渠道包:打开AS的Gradle Tasks面板模块有很多任务,直接双击对应的耽搁渠道任务生成对应的apk。用命令行单独生成xiaomi渠道使用gradlew assemblexiaomiRelease就好了。
好了,Gradle的基本情况就说到这,具体可以阅读官网或者查阅其他资料,Gradle的使用需要经验的积累。
Android Studio插件安装及使用Genymotion模拟器
Android Studio自带的模拟器速度已经比Eclipse插件的快一点了,但是还不够暴力,不够爽。现在来说说最暴力的Genymotion模拟器如何结合AS 使用。首先上Genymotion官网下载安装Genymotion,同时你需要在Genymotion官网官网上注册一个账号,这样你才能正常的使用 Genymotion。
进入AS的Settings界面左侧找到Plugins,点击下图箭头Button(也就是在线安装):
顺便说下上图界面也就是AS安装插件的通用方法,可以看见当前已经安装了的插件,选择在线安装或者从硬盘安装,即针对你已经下载好了的插件,可通过这项选择到你下好的插件,进行安装。
如下图所示在1区输入插件名字,2区选中,3区下载安装,然后返回后在AS工具栏上可以看见Genymotion小图标,也就是箭头4指的那个玩意,说明安装OK。
接下来就是设置下Genymotion,新建一个虚拟机设备,这是Genymotion的东西,至于怎么弄Step by Step就行,没啥难度。完事点击AS上模拟器图标就可以启动使用了,运行AS程序选择模拟器就可以在模拟器看见自己程序了,下图就是 Genymotion启动起来的界面。
至此快速模拟器Genymotion已经搞定,提升你的速度。其他的插件安装也就触类旁通了。
其他
其他的也就是快捷键啥玩意的了。这东西就得自己积累慢慢整了,纯属积累熟练。诡异的问题就自行google和度娘了。其实到现在版本的AS还是有一些Bug的,但是满足基本需求了,遇见Bug查阅修改绕过或者使用大招—-重启AS一般就能解决,其他的诡异问题欢迎讨论共同成长。
PS:其他问题上AD就行了,这文章基本也就是AD的翻译版加上自己遇到的蛋疼问题的汇总了。
Koin快速入门——Android ViewModel
首先,将Kotlin的Android依赖在Gradle文件中引入如下:
让我们创建一个 HelloRepository 来提供一些数据:
让我们创建一个ViewModel类来使用这些数据:
用 module 函数声明模块。让我们定义第一个组件:
?> 我们用 viewModel 关键字在 module 中声明 MyViewModel 类。Koin将为lifecycle ViewModelFactory提供一个MyViewModel,并将其绑定到当前组件。
有了module以后,就可以用Koin启动它。打开或者创建你的自定义的Application类(别忘了在mainfest.xml文件中声明),调用 startKoin() 函数:
MyViewModel 组件会和 HelloRepository 实例一起创建。要在Activity里面获取,需要使用代理注入器 by inject() 在Activity里注入:
by viewModel() :这个函数可以让我们从Koin里获得ViewModel实例。
getViewModel() :这个函数是不通过懒加载的方式,直接获得实例。
给入门开发者的一份资料,Android八大模块,帮你掌握移动...
万事开头难!许多人心急手却慢,找不到突破的出口,时常陷入焦虑。但只要迈出第一步,就成功了一半。无论在如何领域,都要讲究系统的学习方法。
Android相关的所有内容共分为8大模块、729个知识点,覆盖当下所有互联网大厂最看重的知识及行业前沿的技术点,学会这八大模块,就代表基本掌握了Android开发的各个知识点!!
(如果你正苦于寻找进阶之路,那么可以点击收藏这份笔记,或点击下方卡片领取pdf完整版)
目录一、架构师筑基必备技能1.深入理解Java泛型
2.注解深入浅出
3.并发编程
4.数据传输与序列化
5.Java虚拟机原理
6.高效IO
二、Android百大框架源码解析1.Retrofit2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart源码解析
5.Glide源码解析
6.Leakcanary源码解析
7.Universal-lmage-Loader源码解析
8.EventBus3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco源码分析——图片加载流程
三、Android性能优化实战解析1.腾讯Bugly:对字符串匹配算法的一点理解
2.爱奇艺:安卓APP崩溃捕获方案——xCrash
3.字节跳动:深入理解Gradle框架之一:Plugin,Extension,buildSrc
4.百度APP技术:AndroidH5首屏优化实践
5.支付宝客户端架构解析:Android客户端启动速度优化之「垃圾回收」
6.携程:从智行Android项目看组件化架构实践
7.网易新闻构建优化:如何让你的构建速度“势如闪电”?
四、高级kotlin强化实战1.Kotlin入门教程
2.Kotlin实战避坑指南
3.项目实战《KotlinJetpack实战》
从一个膜拜大神的Demo开始Kotlin写Gradle脚本是一种什么体验?Kotlin编程的三重境界Kotlin高阶函数Kotlin泛型Kotlin扩展Kotlin委托协程“不为人知”的调试技巧图解协程:suspend五、Android高级UI开源框架进阶解密1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
六、NDK模块开发1.NDK模块开发
2.JNI模块
3.Native开发工具
4.Linux编程
5.底层图片处理
6.音视频开发
7.机器学
七、Flutter技术进阶1.Flutter跨平台开发概述
2.Windows中Flutter开发环境搭建
3.编写你的第一个FlutterAPP
4.Flutter开发环境搭建和调试
5.Dart语法篇之基础语法(一)
6.Dart语法篇之集合的使用与源码解析(二)
7.Dart语法篇之集合操作符函数与源码分析(三)
八、微信小程序开发1.小程序概述及入门
2.小程序UI开发
3.API操作
4.购物商场项目实战
由于文章内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要《Android八大模块进阶资料》完整文档的可以点击下方卡片免费领取
附全套视频资料:一、面试合集
二、源码解析合集
三、开源框架合集
最后以上资料均免费分享,希望能够帮助一些在这个行业发展迷茫的,或者想系统深入提升以及困于瓶颈的朋友,在网上博客论坛等地方少花些时间找资料,把有限的时间,真正花在学习上。
也祝愿每位在这个行业内深耕的人能够成功进阶,升职加薪,万事顺遂!!
Java的常用开发工具?
java常用的开发工具。都说工欲善其事必先利其器,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。另外霍营北大青鸟认为面试java工作时开发工具的使用也是一个重要的考核点。
要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具。
1、要想编写程序,需要一个能编写源代码的编辑工具。例如:Notepad++;
2、要想测试程序,需要一个编译、执行工具。例如:JDK;
3、要想单独测试一个单元,需要一个单元测试工具。例如:JUnit、TestNG;
4、要想编写开发文档,需要开发文档编辑工具。例如:word、Excel、PPT;
5、要想分析设计程序,需要程序的分析设计工具。例如:StarUML;
6、要想方便管理源码和版本升级,需要源码管理和版本维护工具。例如:SVN,Git;
7、要想多个团队协作开发或者项目用到很多的第三方类库和Jar包。需要自动化构建工具。例如:Maven、gradle;
8、要想在一个工具中使用以上所有功能,需要用到集成开发工具IDE。例如:Eclipse;
大家看到这么多工具是不是很头疼。哈哈:)所以说java开发入门门槛有点高。没关系。后面的课程我会一个一个逐步给大家详细介绍。下面我们先简单了解一下这些java开发常用工具。
android studio什么时候发布的
2013年5月份,Google在I/O开发者大会上推出了基于IntelliJ IDEA Java IDE上的Android Studio,定位很简单:这是官方的Android IDE。
同时,Google承诺Android Studio将使得开发者“更快更有效率”,并称它是Eclipse的替代品,事实上,公司为Eclipse用户列出了迁移步骤。
新增功能
鉴于Android Studio现在只有1.0,从某种程度上来讲所有的功能都是“新”的。但是Google也有特定要突出的功能(完整的概述,见于Android Studio基础页面)。
首先,我们第一次运行安装向导,现在这“入门”向导需要你安装Android SDK ,设置开发运行环境,创建一个优化的测试应用模拟器,以及捆绑一组代码模板。
说到模板, Android Studio 包括安装向导,允许你创建新的项目模板或者导入 Google 代码示例。如果空的项目让你无从下手,你会喜欢这个导入功能的。
Android Studio 使用所有 IntelliJ IDEA 智能的代码编辑功能,比如高级代码完成,重构和代码分析。
Android Studio 允许你管理你所有应用的字符串翻译,你可以很容易的在任何项目中提取和分析所有硬编码字符串。
Android Studio 允许你编辑和预览Android 布局,通过不同的屏幕大小,语言甚至是 API 版本来调试。如果你正在开发一个运行于多个Android版本的应用,这将会有很大的帮助。
Android Studio包含一个性能分析工具叫内存监视器。它向你展示应用的内存使用情况,这样可以帮助你找到方法来提高应用性能。
最后Android Studio允许一个简单的方法将Google云存储后端和端点添加到你的应用中,就像Google云消息传递那样。后者是Google最初承诺IDE的特点之一。公司的目标是(目前仍然是)让Android Studio成为开发者构建新应用的单一中心。
Android Studio使用Gradle-based构建系统,Google称这“提供了很大的灵活性和可扩展性”。关键的特性包括构建多样的支持以便更好地操作不同的构建类型(调试VS发布),或者同一个应用的不同版本(付费VS免费), multi-APKs通过分段游处理,multi-dex支持并依赖第三方函数库管理。
Google于今天同时发布了Gradle plugin的1.0版本。自从Android Studio和Gradle plugin之间的通信变得稳固之后,更新其中一个将不会要求更新另一个。
Android Studio 是Google 官方在2013 Google I/O 大会(2013 年5月)上发布的全新Android 开发IDE(基于Intellij IDEA),在2014 年12 月发布第一个稳定版(1.0),目前最新版本为1.2 Beta 3;依托与Intellij IDEA,它更智能,提示功能更强,默认使用Gradle 构建,布局文件实时预览等等。
2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio 1.3版,支持C++编辑和查错功能。Android Studio 1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能。
2016年05月19日,在谷歌I/O大会上,谷歌为Android开发者带来了全新开发工具Android Studio 2.2。Android Studio 2.2主要改进了UI设计工具,增强了对Java8和C++语言的支持,而且JIT编辑器也变得更加强大,模块化应用的构建变得更加简单。同时,Android Studio 2.2还将深度整合全新移动分析工具Firebase Analytics,该工具主要用于统计应用、管理消息推送和维护管理App,并且支持在线云存储和实时性能调整。
2013年5月份
2013年5月份,Google在I/O开发者大会上推出了基于IntelliJ IDEA Java IDE上的Android Studio,定位很简单:这是官方的Android IDE。
同时,Google承诺Android Studio将使得开发者“更快更有效率”,并称它是Eclipse的替代品,事实上,公司为Eclipse用户列出了迁移步骤。
新增功能
鉴于Android Studio现在只有1.0,从某种程度上来讲所有的功能都是“新”的。但是Google也有特定要突出的功能(完整的概述,见于Android Studio基础页面)。
首先,我们第一次运行安装向导,现在这“入门”向导需要你安装Android SDK ,设置开发运行环境,创建一个优化的测试应用模拟器,以及捆绑一组代码模板。
说到模板, Android Studio 包括安装向导,允许你创建新的项目模板或者导入 Google 代码示例。如果空的项目让你无从下手,你会喜欢这个导入功能的。
Android Studio 使用所有 IntelliJ IDEA 智能的代码编辑功能,比如高级代码完成,重构和代码分析。
Android Studio 允许你管理你所有应用的字符串翻译,你可以很容易的在任何项目中提取和分析所有硬编码字符串。
Android Studio 允许你编辑和预览Android 布局,通过不同的屏幕大小,语言甚至是 API 版本来调试。如果你正在开发一个运行于多个Android版本的应用,这将会有很大的帮助。
Android Studio包含一个性能分析工具叫内存监视器。它向你展示应用的内存使用情况,这样可以帮助你找到方法来提高应用性能。
最后Android Studio允许一个简单的方法将Google云存储后端和端点添加到你的应用中,就像Google云消息传递那样。后者是Google最初承诺IDE的特点之一。公司的目标是(目前仍然是)让Android Studio成为开发者构建新应用的单一中心。
Android Studio使用Gradle-based构建系统,Google称这“提供了很大的灵活性和可扩展性”。关键的特性包括构建多样的支持以便更好地操作不同的构建类型(调试VS发布),或者同一个应用的不同版本(付费VS免费), multi-APKs通过分段游处理,multi-dex支持并依赖第三方函数库管理。
Google于今天同时发布了Gradle plugin的1.0版本。自从Android Studio和Gradle plugin之间的通信变得稳固之后,更新其中一个将不会要求更新另一个。
java工程师需要掌握什么技能?
以下是在找工作的时候,企业会要求的技能:
1.熟练的使用产品原型工具Axure,熟练的使用设计建模工具PowerDesigner和Enterprise Architect,熟练的使用Java开发环境Eclipse和IntelliJ,熟练的使用前端开发环境WebStorm,熟练的使用软件版本控制工具SVN和Git,熟练的使用项目构建和管理工具Maven和Gradle。
2、掌握Java语言进行面向对象程序设计,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。
3、熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发经验。
4、 对Spring的IoC容器和AOP原理有深入了解,熟练的运用Spring框架管理各种Web组件及其依赖关系,熟练的使用Spring进行事务、日志、安全性等的管理,有使用SpringMVC作为表示层技术以及使用Spring提供的持久化支持进行Web项目开发的经验,熟悉Spring对其他框架的整合。
5、熟练的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,对Hibernate的关联映射、继承映射、组件映射、缓存机制、事务管理以及性能调优等有深入的理解。
6、熟悉常用的关系型数据库产品(MySQL、Oracle),熟练的使用SQL和PL/SQL进行数据库编程。
7、熟悉面向对象的设计原则,对GoF设计模式和企业应用架构模式有深入的了解和实际开发的相关经验,熟练的使用UML进行面向对象的分析和设计,有TDD(测试驱动开发)和DDD(领域驱动设计)的经验。
8、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器和应用服务器的使用,熟悉多种服务器整合、集群和负载均衡的配置。
9、熟练的使用HTML、CSS和JavaScript进行Web前端开发,熟悉jQuery和Bootstrap,对Ajax技术在Web项目中的应用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)进行项目开发的经验。
以上这些能会二分之一就可以找工作了
我们来看看市面上用人企业在招聘Java开发工程师时都有哪些要求?
经过调研,我们发现,企业招Java开发的岗位需求一般是以下几方面:
1、搭建项目系统框架及开发;
2、负责相关产品的功能模块设计;
3、负责软件系统代码的实现,编写代码注释和开发文档;
4、负责所开发模块的单元测试及产品回归测试;
5、解决产品开发中的关键技术问题,并具有一定的新技术探索能力
因此,我们认为,一名合格的Java开发工程师应该具备以下技能:
1.精通设计、需求分析、各种开源工具,JavaEE底层技术等;
2.熟悉工作流程、权限框架、门户框架等;
3.精通Java技术(JSP、Servlet、Java语言)、SSM(SpringMVC、Spring、MyBatis)、SSH(Struts、Spring、hibernate)框架开发能力等;
4.熟悉并具备数据库设计能力和数据库使用经验,企业主流数据库MYSQL、SQLServer等;
5.熟悉Web前端开发技术基础(HTML+CSS+Java+JQuery等)、常用架构(bootstrap:响应式布局、12栅各系统、扁平化UI,LESS标准的应用)加混合APP开发(AngularJS+Node.JS)等;
6.具备一定的项目发布,大数据等基础。
以上就是一名合格的Java开发工程师的必备技能了。
1、精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式,熟练掌握class,object,interaction、statediagrams;
2、熟悉掌握Java核心库,如:collections、serialization、reflection等;
3、了解并应用JVM、classloaders、classreflect,以及垃圾回收的基本工作机制等;
4、熟悉使用Java数据库技术,如:persistence/ORM构架、TopLink、JDO等;
5、熟悉WEB小应用,必须掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT,SWT;
6、学习入门轻量级应用程序框架,如:Spring、PicoContainer、Avalon,以及它们的IoC/DI风格(setter、constructor、interfaceinjection);
7、熟练掌握JCP、JSR、JavaIDE,也要学习企业级JavaBeans(EJB)以及它们的不同组件模式;
8、熟练使用代码生成工具何单元测试体系,如XDoclet、Maven等。
全面系统的Java内容如下:一、JavaSE基础篇JavaSE就是一种标准版,是Java语言的基础部分,Java衍生出来的各种框架(如Spring系列)各种产品都是基于JavaSE标准,JavaSE是Java向上发展的基础,Java任何高级产品的底层基础都是JavaSE,通俗来讲这是所有孩子的”爹“。JavaSE如果学不好,理解不透彻,后面学习框架时就有如天书一般,所以JavaSE这部分的重要性是不言而喻的,希望各位初学者铭记。
主要包含内容:数据类型、基础语法、运算符、流程控制、数组、面向对象、常用类、异常处理、集合、IO流、多线程、反射、注解、解析、网络编程。
PS:JavaSE的内容非常庞大,任何一套JavaSE教程都不会把所有的方法讲一遍,只会挑平时工作中常用的内容来讲解,所以JavaSE里面的内容很多都是课后自己在API文档中慢慢宽咐了解的,你自己一定要学会主动学习,不能坐以待毙。
推荐学习书籍:Java核心技术
二、数据库篇数据库是学习Java语言必学的一项内容,常见的数据库就是MySQL和Oracle这两种,作为初学者一般都是学习MySQL为主,一般情况下中小型企业都会选择MySQL数据库,比较大型的互联网公司会选择用Oracle,而学习Oracle相对于MySQL也要复杂一庆乎些,建议是主要学习MySQL数据库,Oracle作为了解即可。学习数据库较为简单,基本的操作就是增删改查。
三、Web开发Web前端内容:HTML/CSS/JavaScript/(前端页面)
注意:Java后端开发可以不用过多关注HTML页面及CSS的处理,但是最起码要会用简单的HTML,JavaScript是必须要会的,因为Javaweb后端程序员毕竟要接触使用AJAX方式处理数据及显示。当然如果只关注服务器端实现而不考虑任何用户界面,则HTML、CSS、JavaScript都不用关注,但是完全脱离前端的开发现在虽然也不少,但是绝对不关心前端是不可能,尤其是JavaScript,但是前端却可以完全不关心服务器后台的任何实现。
推荐学习书籍:《JavaScript DOM编程艺术》(第二版)
四、高级框架1、Springframework 核心IOC容器
2、Spring boot 在Spring基础上的更全面提升效率的Spring工具
3、ORM 框架当今流行使用较多的是Mybatis 和 MP(Mybatis插件),Hibernate是可选性学习的
4、模板技术,比较成熟的Freemarker
5、Spring Cloud 微服务框架,Spring Cloud提供的全套的分布式系统解决方案。
五、工具maven 是构建管理项目的工具,svn 和git是团队协作开发的项目源代码及相关文档资料管理工具,需要学习者初步掌握其应用。
像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署运行Java web应用的服务器。
以上就是初学者大概学习的内容,我是尽量站在初学者的角度来说的,没有写得特别复杂,怕初学者看不懂,没有实质性的帮助。所以我尽量用白话把话说的简单一些,给大家罗列出主要学习的Java知识点。
Java学到什么程度才能达到就业的水平?不同的软件公司对研发人员的水平要求存在一定的差异,如果从大多数中小型企业来看能接受一个入职到本企业的IT技术人员通常需要具备以下能力。
1 理解掌握Java核心面向对象的设计思想和代码构建,能以面向对象方式设计编写业务功能;
2 熟练掌握至少两种数据库的开发,如Oracle,mySql,能熟练编写基本常用及高级的SQL语句;
3 必需掌握并熟练应用Springframework IOC容器,深入了解IOC及AOP概念并应用,使用MVC实现对web 请求作出处理;
4 熟练掌握Java处理数据库的ORM框架myBatis,JDBCTemplate,对Hibernate也应有所了解;
5 熟练应用Spring 增强工具集合Spring boot;
6 至少熟练使用Eclipse及IDEA集成开发工具构建应用程序;
7 能够基本掌握MVN GIT Maven 在项目中的使用;
8 前端开发必需掌握JavaScript和常用的JS框架
以上这些都是中小型软件企业的入职基本要求,如果你能够达到这个水平,找到一份Java工作应该是不难的。
推荐的学习方式:系统视频教程+书籍辅助+有人指导
视频教程:对于Java初学者来说,看视频学习也是最普通的方式,视频教程会把工作中常用的知识进行讲解,而且视频一般都是分章分节,每一个小节都只讲一个知识点,学习起来较为明确。但是视频教程尽量要完整,最好是一整套视频学习。
书籍辅助:书籍便于对理论知识的补充,以便更容易理解Java面向对象核心设计理念和代码实践功能。
PS:但是大部分人都没有耐心看不下去书,所以大部分人都是只看视频教程学习。如果自己能看的下去就看,看不下去就不看。
有人指导:大部分人都不可能全靠自己的能力把Java学的特别好,因为你不了解这个行业,也不知道怎么学,完全零基础自学Java想要找到工作,概率极低。所以建议如果真的想要做这行,尽量找人去带带你,有不懂的问题可以直接请教,少走弯路,提高效率。学习的质量决定以后工作的薪资以及起点,所以还是应该重视起来。
最终自学Java能就业的人基本具备以下几点:1、有超强的学习耐心及进取心
2、手不懒,代码写的足够多,熟能生巧
3、有一定的学习能力,善于自学善于自己解决问题
4、可以独立写一些简单的项目