android dev sources
1.0.0
在下面,您会发现所有需要成为的Android开发资源,并保持棒极了!
'❤️'重点是kotlin'❤️ '
由于Google宣布了对Kotlin的支持,因此您将找到越来越多的Kotlin围绕Kotlin的来源。
不要忘记查看此项目中包含的OPML订阅文件( subbcriptions.xml )。这将使您很容易地将所有这些惊人的供稿导入您喜欢的RSS读取器。
?去做就对了! ?
与Android中的最新和最出色的相关。
| 类别 | 标题 | URL |
|---|---|---|
| 应用 | ||
| Inoreader-新闻阅读器和RSS | https://play.google.com/store/apps/details?id=com.innologica.inoreader | |
| reddit:官方应用 | https://play.google.com/store/apps/details?id=com.reddit.frontpage | |
| 播放器FM-播客离线 | https://play.google.com/store/apps/details?id=fm.player | |
| 开发人员的剧本 | https://play.google.com/store/apps/details?id=com.google.android.apps.secrets | |
| RSS和新闻聚合器 | ||
| Inoreader | https://www.inoreader.com | |
| Reddit -Kotlin | https://www.reddit.com/r/kotlin | |
| reddit- android | https://www.reddit.com/r/androiddev | |
| 播客 | ||
| Android小吃 | https://androidsnacks.wordpress.com | |
| 说话的科特林 | http://talkingkotlin.com | |
| 分散 | http://fragmentedpodcast.com | |
| Android开发人员后台 | http://androidbackstage.blogspot.de | |
| 上下文#androiddev | https://github.com/artem-zinnatullin/thecontext-podcast | |
| 本地驾驶室 | https://nativewheel.house | |
| 网站/订阅 | ||
| Kotlin每周 | http://www.kotlinweekly.net | |
| 每周Android | http://androidweekly.net | |
| Android Dev Digest | https://www.androiddevdigest.com | |
| infoq | https://www.infoq.com/android | |
| JournalDev | http://www.journaldev.com | |
| 课程/演示/教程 | ||
| 施法者IO | https://caster.io/courses | |
| udacity | https://www.udacity.com/courses/android | |
| Envato Tuts Plus | https://code.tutsplus.com/categories/android/courses | |
| 扬声器甲板 | https://speakerdeck.com | |
| Android Hive | https://www.androidhive.info | |
| Vogella | http://www.vogella.com/tutorials/android.html | |
| 雷·温德里奇(Ray Wenderlich) | https://www.raywenderlich.com/category/android | |
| 安卓 | 设计 | |
| Android设计模式 | http://www.androiddesignpatterns.com | |
| Uplabs材料 | https://www.uplabs.com/material | |
| Android Neicies | http://androidniceties.tumblr.com | |
| Android UI模式 | http://www.androiduipatterns.com | |
| 安卓 | 营销 | |
| weeby网络 | https://weebynetwork.com/blog | |
| 安卓 | 库 | |
| Android Arsenal | http://android-arsenal.com | |
| Kotlin资源 | https://www.kotlinresources.com/tag/android | |
| 博客 | 大师 | |
| 干净的代码 | http://blog.cleancoder.com | |
| 马丁·福勒 | https://martinfowler.com | |
| 博客 | 科特林 | |
| 喷气桥 | https://blog.jetbrains.com/kotlin | |
| 超级科特林 | https://superkotlin.com | |
| 科特林发展 | https://www.kotlindevelopment.com | |
| 哈迪·哈里里(Hadi Hariri) | http://hadihariri.com | |
| 安东尼奥·莱瓦(Antonio Leiva) | https://antonioleiva.com/category/blog | |
| 吉姆·巴卡(Jim Baca) | http://blog.jimbaca.com | |
| 西蒙·威尔茨(Simon Wirtz) | https://blog.simon-wirtz.de | |
| 补品Artos | http://www.tonicartos.nz | |
| 菲利普·豪尔(Philipp Hauer) | https://blog.philipphauer.de | |
| 博客 | 反应性 | |
| 高级反应性爪哇 | http://akarnokd.blogspot.de | |
| 博客 | 开发人员 | |
| 杰克·沃顿 | http://jakewharton.com | |
| 唐·费尔克(Donn Felker) | http://www.donnfelker.com | |
| Kaushik Gopal | http://blog.kaush.co | |
| 马克·艾莉森 | https://blog.stylingandroid.com | |
| 汉尼斯·多夫曼(Hannes Dorfmann) | http://hannesdorfmann.com | |
| Dan Lew代码 | http://blog.danlew.net | |
| chiu-ki chan | http://blog.sqisland.com | |
| 克里斯·班尼斯(Chris Banes) | https://chris.banes.me | |
| 丽贝卡·弗兰克斯(Rebecca Franks) | https://riggaroo.co.za | |
| Zarah Dominguez | http://zdominguez.com | |
| 埃利夫·邦库克(Elif Boncuk) | https://elifboncuk.com | |
| 安妮斯·戴维斯(Annyce Davis) | http://adavis.info | |
| Huyen Dao | http://www.randomlytyping.com/about | |
| 丽莎·雷(Lisa Wray) | http://www.xwray.com | |
| Daichi Furiya | https://wasabeef.jp | |
| 斯科特·亚历山大·鲍恩(Scott Alexander-Bown) | https://scottyab.com | |
| 西里尔·莫蒂尔(Cyril Mottier) | https://cyrilmottier.com | |
| 科里·拉蒂斯劳(Corey Latislaw) | http://coreylatislaw.com/category/mobile | |
| Wolfram Rittmeyer | http://www.grokkingandroid.com | |
| Zarah Dominguez | http://www.zdominguez.com | |
| 费尔南多·塞哈斯(Fernando Cejas) | https://fernandocejas.com | |
| 凯利·舒斯特(Kelly Shuster) | http://www.kiodev.com | |
| 迈克尔·埃文斯 | http://michaelevans.org | |
| MichałLuszczuk | http://blog.propaneapps.com | |
| 瑞安·哈特(Ryan Harter) | http://ryanharter.com | |
| 博客 | 中等的 | |
| Google开发人员 | https://medium.com/google-developers | |
| 正方形角 | https://medium.com/square-corner-blog | |
| Pro Android Dev | https://proandroiddev.com | |
| Android Dev | https://medium.com/tag/androiddev | |
| Android Pub | https://android.jlelse.eu | |
| Android友好 | https://android.i-visionblog.com | |
| 加油的Android | https://medium.com/fueuled-android | |
| Heetch工程 | https://eng.heetch.com | |
| 移动工程 | https://medium.com/mobile-weadingering | |
| 切特·哈斯(Chet Haase) | https://medium.com/@chethaase | |
| 弗洛琳娜·穆滕斯库(Florina Muntenescu) | https://medium.com/@florina.muntenescu | |
| 乔治山 | https://medium.com/@georgemount007 | |
| Nitinkumar Gove | https://medium.com/@nitinkumargove | |
| Patryk Poborca | https://medium.com/@patrykpoborca | |
| 塞萨尔·费雷拉(CésarFerreira) | https://medium.com/@cesarmcferreira | |
| Sebastiano Poggi | https://medium.com/@seeebrock3r | |
| Sebastiano Gottardo | https://medium.com/@rotxed | |
| 阿里特拉·罗伊(Aritra Roy) | https://blog.aritraroy.in | |
| 博客 | 谷歌 | |
| Google开发人员 | https://developers.googleblog.com | |
| Android开发人员 | https://android-developers.googleblog.com | |
| 博客 | 公司 | |
| 喷气桥 | https://blog.jetbrains.com/idea | |
| 领域 | https://realm.io/news | |
| 子质 | https://www.genymotion.com/blog | |
| Commonsware | https://commonsware.com/blog | |
| Yalantis | https://yalantis.com/blog | |
| 哲学黑客 | https://www.philosophicalhacker.com | |
| 大书呆子牧场 | https://www.bignerdranch.com/blog/categories/android | |
| 软件工程时髦 | https://artemzin.com/blog | |
| 奶酪工厂 | https://inthecheesefactory.com/blog | |
| 注意 | https://blog.mindorks.com | |
| 诺维达 | https://www.novoda.com/blog | |
| 巴比伦健康 | https://blog.babylonhealth.com | |
| 博客 | 其他 | |
| Techbeacon | https://techbeacon.com/mobile | |
| 迈克·科恩(Mike Cohn) | https://www.mountaingoatsoftware.com/blog | |
| 编码恐怖 | https://blog.codinghorror.com | |
| 基本实验室 | https://lab.getbase.com/category/Engineering | |
| 海德 | http://hyde.getpoole.com | |
| 叽叽喳喳 | 跟随 | |
| Google开发人员专家 | https://developers.google.com/experts | |
| 杰克·沃顿 | https://twitter.com/jakewharton | |
| 唐·费尔克(Donn Felker) | https://twitter.com/donnfelker | |
| Kaushik Gopal | https://twitter.com/kaushikgopal | |
| 切特·哈斯(Chet Haase) | https://twitter.com/chethaase | |
| 托尔比 | https://twitter.com/tornorbye | |
| 子质 | https://twitter.com/genymotion | |
| 网站/订阅 | (请参阅相关部分) | |
| 课程/演示/教程 | (请参阅相关部分) | |
| 博客 | (请参阅相关部分) | |
| YouTube频道 | (请参阅相关部分) | |
| 社区/聚会 | (请参阅相关部分) | |
| YouTube | 频道 | |
| Android开发人员 | https://www.youtube.com/user/androidDevelopers | |
| Android对话 | https://www.youtube.com/channel/ucmemnnht69zuaore-df6ug | |
| Google开发人员 | https://www.youtube.com/user/googledevelpings | |
| 火基 | https://www.youtube.com/user/firebase | |
| JETBRAINSTV | https://www.youtube.com/user/jetbrainstv | |
| SquareGengeering | https://www.youtube.com/user/squareengineering | |
| 广场岛 | https://www.youtube.com/channel/channel/uctddotsw0tkvtro98xu35g | |
| TouchLab | https://www.youtube.com/channel/uc_liw0oudsri21d0xnwkexw | |
| Slidenerd | https://www.youtube.com/user/slidenerd | |
| YouTube | 搜索和查找 | |
| Google IO Android | ||
| firebase io android | ||
| DroidCon | ||
| Android开发峰会 | ||
| 社区/会议 | ||
| github | https://github.com/androidstudygroup/contrences | |
| 社区/聚会 | ||
| 所有Android聚会 | https://www.meetup.com/topics/android/all | |
| 所有Android开发聚会 | https://www.meetup.com/topics/android-developers/all | |
| 社区/聚会 | 旧金山和硅谷 | |
| 湾区Kotlin用户组 | https://www.meetup.com/bay-area-kotlin-user group | |
| 旧金山和硅谷Android开发人员 | https://www.meetup.com/svandroid | |
| 旧金山Android用户组 | https://www.meetup.com/sfandroid | |
| GDG旧金山 | https://www.meetup.com/google-developer-san-francisco | |
| 社区/聚会 | 伦敦 | |
| GDG伦敦 | http://www.gdg-london.com | |
| 科特林伦敦 | https://www.meetup.com/kotlin-london | |
| 伦敦Android集团 | https://www.meetup.com/android | |
| 社区/聚会 | 柏林 | |
| 柏林Android | http://berlindroid.de | |
| 柏林·科特林用户组 | https://www.meetup.com/gdg-berlin-android | |
| GDG柏林Android | https://www.meetup.com/gdg-berlin-android | |
| GDG柏林 | https://www.meetup.com/gdgberlin | |
| 社区/聚会 | 雅典 | |
| GDG Android雅典 | https://www.meetup.com/gdg-android-athens | |
| 松弛 | 加入 | |
| Kotlin语言 | kotlinlang.slack.com | |
| Android United | android-united.slack.com | |
| Android聊天 | androidchat.slack.com | |
| 火箱社区 | firebase-community.slack.com | |
| 规格网络 | specnetwork.slack.com | |
| 松弛 | 当地社区 | |
| 柏林ADG | adg-berlin.slack.com | |
| 巴西Android Dev | androiddevbr.slack.com | |
| 希腊Android开发人员 | gdgandroidathens.slack.com | |
| 预览/EAP | ||
| Android o | https://developer.android.com/preview/index.html | |
| Android Studio 3.0 | https://developer.android.com/studio/preview/index.html | |
| Kotlin 1.1.4 EAP | https://discuss.kotlinlang.org/t/kotlin-1-1-4-eap/3721 | |
| Kotlin 1.2 EAP | https://blog.jetbrains.com/kotlin/2017/06/early-access-program-formogram-kotlin-kotlin-1-2-has-ben-ben----------------------- | |
| Github项目 | 科特林 | |
| Kotlin的趋势是什么 | https://github.com/trending/kotlin | |
| 很棒的科特林 | https://github.com/kotlinby/awesome-kotlin | |
| Kotlin Koans | https://github.com/kotlin/kotlin-koans | |
| Kotlin的设计模式 | https://github.com/dbacinski/design-patterns-in-kotlin | |
| Bandhook Kotlin | https://github.com/antoniolg/bandhook-kotlin | |
| 保持 | https://github.com/kotlin/keep | |
| Kotlin Coroutines | https://github.com/kotlin/kotlin-coroutines | |
| 惯用的科特林 | https://github.com/yole/idiomatic-kotlin | |
| 干净的体系结构 | https://github.com/bufferapp/android-clean-architecture-boilerplate | |
| Github项目 | 安卓 | |
| Java和Android的趋势是什么 | https://github.com/trending/java | |
| 很棒的列表 | https://github.com/sindresorhus/awesome | |
| 很棒的爪哇 | https://github.com/akullpp/awesome-java | |
| 很棒的Android | https://github.com/jstumpp/awesome-android | |
| 很棒的rxjava | https://github.com/eleventigers/awesome-rxjava | |
| 很棒的UI/UX | https://github.com/wasabeef/awesome-android-ui | |
| 很棒的材料设计 | https://github.com/sachin1092/awesome-material | |
| 很棒的Android事物 | https://github.com/amitshekhariitbhu/awesome-android-things | |
| Android指南 | https://github.com/aritraroy/ultimateandroidReference | |
| Android指南 | https://github.com/codepath/android_guides/wiki | |
| Android指南 | https://github.com/ribot/android-guidelines | |
| 最佳实践 | https://github.com/futurice/android-best-practices | |
| 建筑学 | https://github.com/googlesamples/android-Architecture | |
| 建筑组件 | https://github.com/googlesamples/android-architecture-components | |
| 干净的体系结构 | https://github.com/android10/android-cleanarchitecture | |
| MVP | https://github.com/sockeqwe/mosby | |
| rxjava | https://github.com/kaushikgopal/rxjava-android-smples | |
| rxjava | https://github.com/amitshekhariitbhu/rxjava2-android-smples | |
| 匕首 | https://github.com/jakewharton/u2020 | |
| 测试 | https://github.com/googlesamples/android-testing | |
| 质量 | https://github.com/artem-zinnatullin/qualitymatters | |
| 材料设计 | https://github.com/nickbutcher/plaid | |
| UTIL代码 | https://github.com/blankj/androidutilcode | |
| 把它们放在一起 | https://github.com/athkalia/just-another-android-app | |
| Android开发博客 | https://github.com/ziem/android-development-blogs | |
| 每月一个图书馆 | 科特林 | |
| 安科 | https://github.com/kotlin/anko | |
| rxkotlin | https://github.com/reactivex/rxkotlin | |
| Kodein | https://github.com/salomonbrys/kodein | |
| Kotlin Coroutines | https://github.com/kotlin/kotlinx.coroutines | |
| kotterknife | https://github.com/jakewharton/kotterknife | |
| sqldelight | https://github.com/square/sqldelight | |
| Kotlin Koi | https://github.com/mcxiaoke/kotlin-koi | |
| 异步 | https://github.com/metalabdesign/asyncawait | |
| 裸露 | https://github.com/jetbrains/exped | |
| 每月一个图书馆 | 安卓 | |
| Android架构组件 | https://developer.android.com/topic/libraries/architecture/index.html | |
| Firebase实时数据库 | https://firebase.google.com/docs/database | |
| 数据指标 | https://developer.android.com/topic/libraries/data-binding/index.html | |
| rxjava | https://github.com/reactivex/rxjava | |
| 匕首 | https://github.com/google/dagger | |
| 黄油小刀 | https://github.com/jakewharton/butterknife | |
| Androidantations | https://github.com/androidannotations/androidannotations | |
| 改造 | https://github.com/square/retrofit | |
| 领域 | https://github.com/realm/realm-java | |
| sqlbrite | https://github.com/square/sqlbrite | |
| 滑行 | https://github.com/bumptech/glide | |
| 毕加索 | https://github.com/square/picasso | |
| 壁画 | https://github.com/facebook/fresco | |
| 斯托特 | https://github.com/facebook/stetho | |
| 泄漏 | https://github.com/square/leakcanary | |
| 自动配电 | https://github.com/google/auto | |
| 包裹器 | https://github.com/johncarl81/parceler | |
| PermissionsDisPatcher | https://github.com/hotchemi/permissionsdispatcher | |
| 脆饼 | https://github.com/matthiasrobbers/shortbread | |
| 约束layout | https://github.com/constraintlayout/constraintlayout.github.io | |
| 洛蒂 | https://github.com/airbnb/lottie-android | |
| 木材 | https://github.com/jakewharton/timber | |
| 雨果 | https://github.com/jakewharton/hugo | |
| JobDisPatcher | https://github.com/firebase/firebase-jobdispatcher-android | |
| 威廉加特 | https://github.com/diogobernardino/williamchart | |
| 每月一个图书馆 | Gradle插件 | |
| Gradle版本插件 | https://github.com/ben-manes/gradle-versions-plugin | |
| DEXCOUNT Gradle插件 | https://github.com/keepsafe/dexcount-gradle-plugin | |
| 每月一个图书馆 | 静态分析 | |
| 皮棉 | https://developer.android.com/studio/write/lint.html | |
| detekt | https://github.com/arturbosch/detekt | |
| checkstyle | https://github.com/checkstyle/checkstyle | |
| PMD | https://pmd.github.io | |
| 查找bug | http://findbugs.sourceforge.net | |
| 每月一个图书馆 | 测试 | |
| 斯皮克 | https://github.com/jetbrains/spek | |
| 浓缩咖啡 | https://developer.android.com/training/testing/espresso/index.html | |
| 朱尼特 | https://github.com/junit-team/junit4 | |
| assertj | https://github.com/joel-costigliola/assertj-core | |
| 嘲笑 | https://github.com/mockito/mockito | |
| robolectric | https://github.com/robolectric/robolectric | |
| jacoco | https://github.com/jacoco/jacoco | |
| 勺子 | https://github.com/square/spoon | |
| 作曲家 | https://github.com/gojuno/composer | |
| 每季度一个平台 | 全部 | |
| 火基 | https://firebase.google.com | |
| 织物 | https://get.fabric.io | |
| 领域 | https://realm.io/products/realm-mobile-platform | |
| 每季度一个平台 | 崩溃报告 | |
| 曲棍球 | https://hockeyapp.net | |
| Instabug | https://instabug.com | |
| bugsnag | https://www.bugsnag.com | |
| 每季度一个平台 | 追踪 | |
| Mixpanel | https://mixpanel.com | |
| 倒数 | https://count.ly | |
| 克利瓦塔普 | https://clevertap.com | |
| 每年一种语言 | ||
| 科特林 | https://kotlinlang.org | |
| JavaScript | https://www.javascript.com | |
| C# | https://msdn.microsoft.com/en-us/library/a72418yk.aspx | |
| 迅速 | https://swift.org | |
| 图书 | 罗伯特·马丁(鲍勃叔叔) | |
| 干净的体系结构 | Vimeo | |
| 干净的代码 | 亚马逊 | |
| 干净的编码器 | 亚马逊 | |
| 图书 | 肯特·贝克 | |
| 以实例为例测试驱动的开发 | 亚马逊 | |
| 实施模式 | 亚马逊 | |
| 图书 | 马丁·福勒 | |
| 重构:改善现有代码的设计 | 亚马逊 | |
| 企业应用程序体系结构的模式 | 亚马逊 | |
| 图书 | 约书亚·布洛克(Joshua Bloch) | |
| 有效的Java | 亚马逊 | |
| Java upzlers | 亚马逊 | |
| 图书 | 设计模式 | |
| 设计模式:可重复使用的面向对象软件的元素 | 亚马逊 | |
| 头首先设计模式 | 亚马逊 | |
| 图书 | 重构 | |
| 有效地使用旧版代码 | 亚马逊 | |
| Mikado方法 | 亚马逊 | |
| 图书 | 测试 | |
| 以实例为例测试驱动的开发 | 亚马逊 | |
| Xunit测试模式:重构测试代码 | 亚马逊 | |
| 图书 | 其他 | |
| 工作中的编码人员:对编程技巧的思考 | 亚马逊 | |
| 务实的程序员:从忠于人到硕士 | 亚马逊 | |
| 软技能:软件开发人员的生活手册 | 亚马逊 | |
| 图书 | 科特林 | |
| 科特林在行动中 | 亚马逊 | |
| Kotlin为Android开发人员 | 安东尼奥·莱瓦(Antonio Leiva) | |
| 图书 | 安卓 | |
| 繁忙的编码员Android开发指南 | Commonsware | |
| Android编程:大书呆子牧场指南 | 大书呆子牧场 | |
| 图书 | rxjava | |
| 用rxjava的反应性编程 | 亚马逊 | |
| 图书 | github | |
| 免费学习资源清单 | https://github.com/ebookfoundation/free-programming-books | |
| 免费软件测试资源列表 | https://github.com/ligurio/free-software-testing-books | |
| 生产率 | Android Studio | |
| Android Studio插件 | https://github.com/balsikandar/android-studio-plugins | |
| 关键启动子 | Android Studio插件 | |
| ADB的想法 | Android Studio插件 | |
| ADB WiFi Connect | Android Studio插件 | |
| 王牌跳 | Android Studio插件 | |
| 专家的Android Studio | https://medium.com/@shemag8/android-studio-for-experts-cheat-sheat-eet-efe892703d97#.fqwwmsifm | |
| 像专业人士一样的Android Studio | https://stanfy.com/blog/use-android-studio-like-a-pro | |
| GDE Philippe Breault讨论了与Android Studio的修补(第一部分) | http://fragmentedpodcast.com/episodes/055 | |
| GDE Philippe Breault在修补Android Studio(第二部分) | http://fragmentedpodcast.com/episodes/056 | |
| Android Studio提示撰写 | https://github.com/pavlospt/android-studio-tips-by-philippe-breault | |
| 生产率 | 技术 | |
| 哈迪·哈里里(Hadi Hariri) - 无摩托车开发 | https://vimeo.com/98922030 | |
| Pomodoro技术 | https://cirillocompany.de/pages/pomodoro-technique | |
| 生产率 | 尖端 | |
| Android技巧和技巧 | https://github.com/nisrulz/android-tips-tricks | |
| Java代码样式(Square和Jake Wharton) | https://github.com/square/java-code-styles | |
| {dev}提示 | https://tips.seeebrock3r.me | |
| 2016年的Androiddev提示和技巧 | http://fragmentedpodcast.com/episodes/048 | |
| 我们从2015年开始选择的提示和技巧 | http://fragmentedpodcast.com/episodes/28 | |
| 与Elliott Chenger谈论文本视图 - 性能 | http://fragmentedpodcast.com/episodes/39 | |
| 如何成为更好的Android开发人员:30多个咬合大小的Pro技巧 | https://techbeacon.com/how-become-better-android-developer-30咬合大小的pro-tips | |
| 30多个开发Android应用程序的Kickass工具,例如Pro | https://blog.aritraroy.in/30-kickass-tools-to-develop-android-apps-like-a-pro-191e52b9419b | |
| 30多个咬合大小的专业技巧,成为更好的Android开发人员 | https://blog.aritraroy.in/30-bite-sized-sized-sized-sized-pro-tips-to-become-a-a-better-a-better-android-developer-b311fd641089 | |
| 生产率 | 入门 | |
| 现代Android开发开始的资源 | https://riggaroo.co.za/resources-getting-started android开发 | |
| 生产率 | 访谈 | |
| Android面试问题 | https://github.com/mindorksopensource/android-interview-questions | |
| 顶级互联网公司Android面试问题和答案 | https://github.com/jackyandroid/androidinterview-qa |
如果您想在列表中添加新条目,请使用以下模板创建一个新问题:
**Category:** Lorem ipsum
**Title:** Lorem ipsum
**URL:** http://example.com
作为问题标题使用Add http://example.com 。
如果您发现此项目有用,请考虑在Github上提供A,并通过社交媒体与您的朋友分享。
我真的很喜欢我创建的此列表上的一些反馈,更喜欢您对此列表的贡献,因为我敢肯定我可能会忘记其他重要且同样强大的Android开发资源,我们的社区可以从...
享受你
热情的Android倡导者。






Copyright 2017 ParaskP7
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.