android开发_android快速开发框架android快速开发框架 - CSDN
android开发 订阅
android开发是指android平台上应用的制作,Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。 展开全文
android开发是指android平台上应用的制作,Android早期由“Android之父”之称的Andy Rubin创办,Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。
信息
中文名
android开发
应    用
短信、手机检索、定位等业务
外文名
Android development
技术支持
Linux
创办人
Andy Rubin
定    义
android平台上应用的制作
环    境
android平台
android开发Android介绍
Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程 序层、应用程序框架层、系统运行库层和 Linux 内核层。 [1]  谷歌公司推出了开源的Android 系统,现在应用非常广泛,开发环境不会受到各种条条框框的限制,开发者任意修改开放的源代码来实现与开发各种实用的手机App软件,具有高级图形显示、界面友好等特点。 [2]  Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的 30 多家技术和无线应用的领军企业组成。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,我们希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。我们认为此举必将推进更好、更快的创新,为移动用户提供不可预知的应用和服务。Android有四大基本组件:Activity、Service、Broadcast Receivet、Content Provider。其中Activity是四大组件中最基本的一个,但基础并不等同于简单、不重要。恰恰相反,Activity作为基础组件,学好Activity就是我们开发者学好Android的前提。 [3]  Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。我们发现,全球为数众多的移动电话用户从未使用过任何基于Android的电话。谷歌的目标是让(移动通讯)不依赖于设备甚至平台。出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。(1)系统开源。Android 由于最底层使用Linux 内核,使用的是GPL许可证, 意味着相关的代码是必须开源的。而 Google以Apache开源许可证的授权方 式,发布Android的源代码,供其他手机厂商直接使用现有操作系统,并允许各厂商按照自己的目的进行个性化定制。 [1]  (2)跨平台特性。Android 由Java语言编写,继承了Java跨平台的特点。任何Android应用几乎无需做任何处理就能运行于所有的Android设备。这意味着各运营商可自由使用多形式的硬件设备,不拘泥于手机、平板等传统移动设备,电视和各种智能家居均可使用 Android 系统。 [1]  (3)丰富的应用。Android系统的开源性吸引了众多开发者为其平台开发各式各样的应用软件,广泛的应用来源让它的使用者较为方便的获取自己想要的应用,坚实的消费者基础让开发者有动力开发更多更好的应用软件。 [1] 
收起全文
  • 1、课程采用Android Studio【以后简称as】开发,需要有java基础的同学才能看 需要设备电脑推荐 win10 + 手机推荐小米8 2、课程内容围绕着以下五点来讲 四大组件(服务、广播、...
  • 这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 ...
  • 本套课程是一套全面、细致、深入的Java开发教程,课程共计19个章节,从基础语法、面向对象到设计模式、算法、网络编程、多线程、IO、集合框架、反射、泛型、正则表达式、常用工具类等内容进行了深入细致的讲解。
  • 根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中。Android系统在几个主要的市场上已超过...这也是为什么越来越多的设计师投身于Android开发设计。本篇文章从不同角度给Android开...

    根据Google的报告,截止2017年5月为止,Android活跃用户已超过20亿,并还在持续增长中。Android系统在几个主要的市场上已超过了iOS系统,特别是在美国,欧洲和日本,然而苹果确实在中国市场找到了一席之地。未来的市场到底谁是“霸主”我们还无从得知,但Android现在的趋势已经超过iOS。这也是为什么越来越多的设计师投身于Android开发设计。本篇文章从不同角度给Android开发提供丰富的教程资源:初级Android开发教程,YouTube视频教程,丰富的Android开发资源以及工具使用等。

    初级Android开发教程:

    https://developer.android.com/training/basics/firstapp/creating-project

     当然,我们还是要从Google给的Android教程开始学起。“开发你的第一个Android应用程序”这个教程一开始就是为初学者准备的,如果你没有一点编程知识,那么学习起来会很困难,但如果你有一些编程背景,那很容易。

    在教程的背后有几个“最佳实践”,这个可以说是非常重要的内容,这是你必须阅读的部分。

     

    https://www.raywenderlich.com/120177/beginning-android-development-tutorial-installing-android-studio

    这个Android教程没有任何附件的条件,只要你有一颗想学习的心和Mac。对的,Mac, 当然你也可以在PC端上开发Android应用程序,但这个教程是基于Mac开发人员的。从这个教程中你将学习到:

    如何设置Android开发过程中使用的所有工具

    如何下载并安装Android studio

    如何在不同设备和模拟器中测试你的应用程序

    创建简单的“hello world”Android应用程序,并可以打印到你的设备以及模拟器

    如何将示例项目导入Android studio

     

    https://www.tutorialspoint.com/android/index.htm

    Android编程是基于Java语言的,如果你对Java编程有基本了解,那么学习起来会相对轻松些。这个教程会教你基本的Android编程,并带你了解一些与Android应用程序相关的高级概念。本篇教程完全是为初学者准备的,当你了解完这篇教程后,你将发现自己已达到了Android编程中等水平的专业知识,从而就可以进入下个阶段。值得一提的是,这个网站上涵盖了几乎所有的Android开发的知识,包括:Android的用户界面,Android高阶概念,Android应用程序样例以及各种Android资源。

     

    https://www.raywenderlich.com/185299/building-android-library-tutorial

    Android库在结构上与Android应用程序模块相同。 它可以包括构建应用程序所需的一切,包括源代码,资源文件和Android清单。在本教程中,你将学习到构建Android库的所有内容,从创建到发布以供其他人使用。教程内容包括:

    如何创建Android库

    如何发布你的Android库

    如何使用你的Android库

    Android库的最佳实践

     

    YouTube视频教程:

    https://www.youtube.com/playlist?list=PLS1QulWo1RIbb1cYyzZpLFCKvdYV_yJ-E 

    这个教程是Android开发系列教程,涵盖56个视频教程。从基础的介绍和安装配置Java JDK到安装Android studio以及开发应用程序,你可以了解到你想了解的一切关于Android开发的知识。

    https://www.youtube.com/playlist?list=PLshdtb5UWjSrOJfpFOE-u55s3SnY2EO9v 

    本教程总共有69个视频,从基础的开发知识到如何创建一个Android应用程序,你想知道的Android所有知识,都涵盖在这77个视频里。在学习完本系列教程,你可以创建自己的Android应用程序,并可以在Play store中发布你的应用程序。这个系列教程是2018年最新的。

    https://www.youtube.com/watch?v=EOfCEhWq8sg

    本教程是由在线学习网站Treehouse提供的。顺便说一句,这个网站的学习资源很丰富,有时间可以去看看。目前, Android开发都是有Android studio这个工具完成的,它有助于组织我们的项目,并提供一种用户友好的方式来创建我们找寻的东西。在本视频中,我们将学习到如何安装Android studio,然后制作应用程序,如果你没有一点编程知识,也没关系,跟着视频学习,你将了解更多Android应用程序。

     

    Android开发资源:

    https://www.udemy.com/java-tutorial/

    本课程是为初学者准备的,如何学习Java编程语言,没有编程背景也不影响,并且是免费的。

    https://www.youtube.com/playlist?list=PL9DF6E4B45C36D411

    Java编程学习的系列YouTube视频教程,涵盖47个视频。

    https://www.youtube.com/watch?v=WPvGqX-TXP0&feature=youtu.be

    这个教程能够在30分钟内教你Java的核心知识。

    https://academy.realm.io/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/

    学习如何为复杂的Android应用程序选择合适的架构,实现更好的开发、测试、调试和维护。

    https://www.w3schools.com/xml/

    如果还对XML不熟悉的,现在是你学习它的最佳时机,因为你需要大量的使用它来设计Android布局,这个还比较简单,你不需要花费太多时间。

    https://code.tutsplus.com/tutorials/a-beginners-guide-to-http-and-rest--net-16340

    如果你需要通过Android应用程序进行API调用,那么了解HTTP和REST非常重要。

    https://www.mockplus.com/blog/post/android-app-design

    Android开发同样需要学习APP 设计,和设计师能够更好的沟通。

    https://www.mockplus.cn/blog/post/947

    这篇文章给我们提供了最全的材料设计 UI kit。

    https://blog.google/products/android/

    如果你想获得Android最新消息,那么不如直接从Google获取。

     

    https://android-developers.googleblog.com/

    如果你是Android的开发人员,那么这个博客可以获得Android所有的最新时讯,并提供最新的一些开发应用程序技巧以及丰富的培训资源。

    http://www.androidguys.com/

    这个博客为Android用户提供关于Android的产品、使用技巧以及最新的时讯。如果你想了解某个Android的操作系统以及设备,那么这个博客你绝对值得收藏。

    https://www.androidauthority.com/how-to-use-material-design-in-your-android-apps-809937/

    本文教你如何使用材料设计让你的Android应用程序更加美观吸引人。

    Android 开发工具:

    Android Studio

    所有Android应用程序离不开Android studio,它是Google推出的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。Android Studio还提供了更多功能,可在构建Android应用程序时提高你的工作效率,例如:C ++和NDK支持。

    Mockplus

    Mockplus是一款Android原型设计工具。快速原型设计是设计师与移动app软件需求方沟通的最好工具,我的理解就是在软件开发初期,先对所要开发的软件有一个大致的整体设计,毕竟现在的移动端多种多样,原型的重要性是降低开发成本,此阶段应该被充分利用,以避免后期因为不符合需求而改写大量代码。如果没有一个好的设计,很难做出一个比较优秀的软件,快速原型更有利于用户与开发人员的交互,使设计细致入微。


    Android Device Monitor

    Android Device Monitor是一个独立的调试监控服务工具,可为多个Android应用调试和分析工具提供UI。

    APKAnalyser

    这是一个静态、虚拟分析工具,你可以全面地概览应用的架构。可以用它来检查API参考文档,反编译字节码。APKAnalyser是一个完整的开源工具链,它支持修改应用的二进制代码,你可以重新打包、安装、运行以及验证logcat的结果。


    总结

    假如开始没有任何的开发经验的话,千万不要着急,不要想着在短时间内就把一个语言学习好,因为你之前没有任何的学习经验,在这个过程中需要有耐心地学习完JAVA的基础知识,然后才开始踏上Android开发之旅。有开发经验的,可以在Android上迅速上手,但是同样的是不可忽略Android的一些基础知识,只有把基础掌握好了,才能在后期取得大的进步。

    展开全文
  • 60个Android开发精典案例,好东西 - 给大家分享60个Android开发的精典案例,包含任务监听、设备适配,游戏框架搭建,特效实现,多点触控,网络协议,游戏关卡设置等内容。特别是做游戏开发的朋友值得研究。喜欢就拿...
  • 从2010年开始Android市场开始需要大量的Android开发人员,招聘市场上也开始大量招Android开发人员,大量java开发者开始学习Android开发,招聘市场面试要求上只要有一定java语法基础,都很容易应聘上Android开发的...

    现状

    从2010年开始Android市场开始需要大量的Android开发人员,招聘市场上也开始大量招Android开发人员,大量java开发者开始学习Android开发,招聘市场面试要求上只要有一定java语法基础,都很容易应聘上Android开发的岗位,因为那时候国内Android开发的需求刚刚起步,从事Android开发的人员很少,到2011-2012年,只要有一年左右的Android开发经验,那时候在一线城市很容易拿到10K的起步薪资,那时候市场Android开发的市场空缺大概有30万左右,这时候大量软件培训公司开始大量培训Android开发人员,一时大批开发者或者大学毕业生开始涌向移动开发,当然此时也是移动互联网大势发展的时候,一大批互联网创业公司也开始出现,当时号称只要做个App就可以开始创业了。到了2016年年底时,市场上Android的招聘需求大量减少,当然这时候有一批相应的创业公司已经衰退,对应培训市场上已经不再把Android开发作为热门核心的培训科目,到现在创业也不用一开始就做一个App就可以开始了,现在越来越讲究精益创业,刚开始推崇最小化可行产品。现在越来越讲究效益和成本,比如现在只需一个小程序,一个微信公众号,一个视频,一个微信群或者QQ群,甚至只需要经营你的朋友圈就可以开始你的初期创业想法。当然一些新技术的不断更新与迭代,新技术的层出不穷让我们本身对Android开发水平还没有达到理想状态时已经产生各种焦虑和担忧,比如前段时间快应用的出现,今年小程序的火爆,各种混合开发,跨平台开发已经让我们学习跟不上脚步,就算我们在Android原生开发中也出现各种框架,各种开源库,以及各种大型项目的构建技术和细分领域的技术比如NDK,音视频、逆向技术、图像技术等等已经让我们应接不暇。以上种种让我们产生了移动Android开发已经凉了,有人有这样的比喻,现在学习加入Android开发,犹如1949年10月加入GMD。确实移动市场没有之前的火爆,但是移动开发真的凉了吗?

    02

    现实

    我的回答是凉还不至于,因为目前是市场趋于稳定正常,这个是市场发展的比如趋势,现在火爆大家都看好的人工智能,大数据,犹如2010年刚开始的移动开发。目前现在是需求量趋于平衡,对初中级水平的开发人员需求量变少,但是对高级以上的需求市场还是很匮乏,特别是对于特定细分领域的Android开发人员也是很匮乏,对Android开发的综合能力,特别是基础原理性要求也越来越高,比如很多公司要求会对对某项要求会优先考虑,比如现在流行的Kotlin,混合开发,跨平台开发,NDK,高级图像处理等,市场上很火爆的直播和小视频对音视频这个细分领域的高级人才需求量也是比较大的,以至于AI、AR、VR等技术也需要通过终端展示给用户,所以说移动端开发未来还是会有所作为。

    03

    要求

    所以目前我们要选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点,这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。

    所以,找准自己的定位及细分领域。

    这里我归类了如下几类:

    1、应用层开发,不限于各种产品,主要还是Android原生开发,主要是各种性能优化。

    2、嵌入式开发,不限于各种开发板子,物联网,智能家居,车联网/车载

    3、安全开发,不限于各种反逆向,反汇编,寻找安全漏洞

    4、音视频开发,不限于直播、点播、音视频通话、音视频会议,短视频等

    5、插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发

    6、系统开发(Android),不限于Rom维护和FrameWork层定制需求

    7、图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜

    8、小程序 / 快应用

    小程序是基于微信这个亿级流量入口所衍生出来的产品,而快应用,快应用是九大手机厂商基于硬件平台共同推出的新型应用生态。用户无需下载安装,即点即用,享受原生应用的性能体验,不过个人觉得,他已经凉凉了,小程序倒是挺看好的,腾讯这座大山,微信这座凉亭,你想不凉快都难,不过看你是否刚需,比如你公司有需求,那你可以去学习。

    推荐学习的新技术,Flutter和Kotlin,这两个都是Google推荐的。

    Flutter

    Flutter是Google在2018年2月27日,在2018世界移动大会上发布的用以帮助开发者在ios和Android两个平台开发高质量原生应用的全新移动UI框架

    官网:https://flutter.io/

    中文论坛:http://flutter-dev.cn/

    由于是是Google发布的,就前景来看,还是值得肯定的。

    Kotlin

    Kotlin 是Google推荐的官方开发语言,与Java互通,可相互转换,简洁安全等,是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由JetBrains 设计开发并开源,

    Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。

    学习资料
    Kotlin 官网:https://kotlinlang.org/
    Kotlin 文档:https://kotlinlang.org/docs/reference/
    Kotlin 中文文档:http://www.kotlincn.net/docs/reference
    Kotlin GitHub:https://github.com/JetBrains/kotlin

    04

    最后

    如果你的水平接近达到高级水平,有信心快速达到高级水平,那就按照高级水平的技能点和市场招聘的高级要求对照靠近,一步步达到这个水平。如果你的水平还是初级入门水平,或者兴趣度不是很高,想早点转换,你可以快速转变,因为在正确方向上努力太重要了,这里也建议不要跨度太大,这里我推荐往大前墩或者产品方向转变,当然前提是你有这方面的兴趣。

    当然上面讲的都是技术方向上的发展,当然对一些技术栈水平和技术积累到一定程度后你也可以往技术管理和产品方向发展,当然你也可以选择创业,如果你有足够好的idea和心理准备。

    当然大部分人停留在中高级水平,然后一直停滞不前,加上外部各种环境,产生了各种焦虑,所以很矛盾,这时候你最好的状态是快速往高级水平发展,当然这里是比较难的,这个坎也是比较难迈过去的。因为Android知识体系比较庞大和复杂的,涉及到计算机知识领域的方方面面。下次可以专门讲讲怎么快速进阶为Android高级工程师。

    欢迎关注我的公众号,会持续更新个人成长和互联网技术干货

    这里写图片描述

    展开全文
  • 我们在进行需求开发的同时,有时候也需要去排查一些问题,今天就来讲讲我们可以借助哪些工具来分析和处理视频文件。由于本人使用的是mac,讲解均以mac为例。  今天主要讲解的几个工具是ffmpeg、ffprobe、qt-...

           今天这篇文章我们来讲点实用的内容。我们在进行需求开发的同时,有时候也需要去排查一些问题,今天就来讲讲我们可以借助哪些工具来分析和处理视频文件。由于本人使用的是mac,讲解均以mac为例。

           今天主要讲解的几个工具是ffmpeg、ffprobe、qt-faststart和AtomicParsley。

     

    ffmpeg

           ffmpeg是一套用来记录、转换音视频文件的开源库,它提供了一套音视频处理的完整解决方案。具体的安装方法可以自行去搜索。我们可以使用它实现视频的格式转换、截图、合成、加水印等许多功能。现在的自定义播放器一般都是使用ffmpeg来进行解码,或者是在ffmpeg的基础上进行封装,但无论怎样,基本原理都是差不多的。ffmpeg也提供了一些命令行工具,可以对视频文件进行一些处理。

           今天来介绍ffmpeg的一些简单命令。

    • ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv test.flv

    将mp4文件转换成flv格式。

    • ffmpeg -i test.mp4 -y -f image2 -t 0.001 -s 1080x1920 out.jpg

    截取一张视频的图片,大小为1080x1920,格式为jpg,-t表明要截图的时间点

    • ffmpeg -ss 0:0:30 -t 0:0:10 -i input.mp4 -vcodec copy -acodec copy output.mp4

    从input.mp4文件中截取一段视频,时间起点为30s,视频长度为10s。

     

    ffprobe

           ffprobe是ffmpeg工具包中提供的一个命令行工具,可以用于查看音视频文件的格式。它的参数也很多,这里只介绍基本用法,具体参数可以自行查看。

           使用方法如下:

    ffprobe aa.mp4

    ffprobe -show_format aa.mp4

           我们来看下输出内容:

           对我们有用的是下面的Stream中的Metadata部分,从中我们可以看出,视频编码格式为h264,颜色格式为yuv420p,分辨率480x480,码率1151kbps,帧率24.98fps, 而音频为aac编码,采样率为44100Hz,码率64kbps。

           和上面的命令相比,多了FORMAT部分。关于其中各个字段的说明,我找到一张现成的表格,大家可以参考一下。

     

    AtomicParsley

           讲解这个工具之前,我们先来了解一下mp4文件的组成。

           mp4文件主要由ftyp、mdat、moov三部分组成,ftyp记录了mp4格式,编码格式之类的基本信息,mdat记录了视频的数据信息,而moov则是一个如同检索表一样的存在,记录了每一帧对应的数据在哪里。

           AtomicParsley是一个开源的多媒体文件结构分析器。我们可以使用它来查看mp4文件的结构,工具的具体下载地址为

    http://www.downloadcollection.com/atomicparsley_for_mac.htm

           我们有一个测试文件test.mp4,可以通过./AtomicParsley test.mp4 -T 来查看mp4文件的组成。

           通过上图,我们可以看到文件中ftyp、fdat、moov三部分依次排列,三部分大小分别为24、4327164、3875字节。可以看到fdat部分占据了文件的绝大部分,其他两部分都很小。

     

    qt-faststart

           通过之前的介绍,我们认识了mp4文件的组成。播放器播放mp4文件,也是需要先读取ftyp部分以确定解码方式,然后读取moov部分,才能获取视频总时长,并根据moov的检索信息到mdat里面读取相应的媒体信息,进而播放。所以,想要播放mp4,一定要让播放器先读取到ftyp与moov才行的。

           而很多mp4文件的moov会在视频的尾部,播放器在播放视频的时候,如果探测视频头部超过一定数据量依然不能获得moov信息,就会跳到视频尾部去探测,这样播放速度就会受影响。因此,为了提高视频的播放速度,我们需要让moov信息在视频头部。对于moov已经在尾部的视频,我们就可以通过qt-faststart来转换。

           使用前首先需要进行安装,在mac上,只需要执行下面的命令就可以安装成功:brew install qtfaststart

           然后就可以直接使用了,使用方式如下:

    qt-faststart  inputfile.mp4  outputfile.mp4

           我们还是来看上面介绍AtomicParsley时的test.mp4文件,通过qt-faststart的处理,文件组成结构发生了变化。

           文件中各部分的顺序由ftyp、mdat、moov变成了ftyp、moov、mdat,mdat部分移到了文件的末尾。这样就可以在一定程度上提高视频的播放速度。

           上面提到的这些工具虽然并不是很常用,但是关键时候还是能够帮助我们排查一些问题的,因此,了解一下他们的功能和基本用法还是有好处的。

           欢迎关注我的微信公众号,收到最新的推送文章

          

     

    展开全文
  • 因为项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定
    原文地址为:看我是如何快速学习android开发的(一)

            因为项目需要,8月中旬开始决定做安卓的程序,所以马上就开始学习安卓方面的开发知识,把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料,视频,然后就不知道做什么了,要给自己定个目标,我要做什么?我怎么达到目标? 

    我不懂java,但是懂C#和C++,所以我没主张去单独学习java语言,如果你是个最最初的新手,没啥语言基础,那你必须先看看java语言,不要很详细看,因为学习Android中,你也是在学习java。 

            1. 明确目标

    没有目标的学习,会感觉到后面没什么成果,在1年前,我也打算学习android开发的,但是目的就是学习,到网上去下载很多学习的视频,然后把开发环境搭建起来,能把Helloworld运行起来,能打些log,Activity之间也能互相切换了,但是后面也就不了了之了,因为不知道学了要干什么。依葫芦画瓢的做了几个例子,因为里面的问题都是已经解决的,所以也没能深入的系统学习。

     这次因为产品的需要,要做Android版本,要做的东西一开始就已经设计好了,见摇摇2选1安卓版本,刚开始也不知道里面有些什么技术难度,但是要做的目标已经明确了,而且也没有现成的,碰到问题就查资料,慢慢地解决,这样有的放矢,学习的效果非常好。既有现成的技术可以使用,又有些技术,需要查比较多的资料,这样记忆就比较深刻,所掌握的知识也比较系统。

    接下来的一系列文章,我会把在开发摇摇2选1中遇到的问题,给大家详细讲讲,程序虽然小,但是五脏俱全,做Demo和做产品的要求完全不是一个级别,如果Android大牛感觉知识讲的比较浅,那可以绕道,毕竟我是从一个完全的新手开始的。

     

            2. 了解安卓开发中比较困难的地方

    学习一个新平台,就要知道此平台开发要面临的困难有哪些,不要做到最后,这些问题没有考虑,那就比较糟糕了。在网上搜索了下,安卓开发困难总结如何

    1)安卓系统版本比较多,各版本之间的兼容性是个问题,此为系统碎片。

    2)安卓设备千变万化,设备难以统一,每个产品都成为独立,分散的Android碎片。

    3)分辨率五花八门。一个产品,可能需要多个界面排版,人工消耗比较大。

     

    看到这张图,有没有头疼的感觉? 

    总结成一句话:Android的碎片化真是要来开发者的命。 

     

            3. 搭建开发环境

    "巧妇难为无米之炊",开发环境肯定是第一件要做的事情,这类的文章已经很多了,我也不多说了,多说也就比较无聊了。感谢吴秦,也是博客园里的一员,他写的很详细了,见这里

     

            4. 查看网友总结的一些经验。

                 不是什么都查看,开发中遇到什么问题,就去查看什么问题,这样你查到的知识,马上就能深入的实践,这样知识就巩固了。

         1)首先当然要看Android的开发文档,里面其实大部分的知识都有了,还有就是SDK自带的Samples。

         2)博客园里搜索“Android开发”,会出来一大把,很多网友都是很系统的讲解了。

         3)eoe android社区,里面有很多网友上传了现成的demo代码,里面很多都是模仿现在流行的产品的界面开发,很是不错。

     

            5. 掌握调试方法

    个人一直认为,调试技巧是开发中最重要的技能,如果调试技能比较差,不知道如何查找问题,那不会是个好的程序员,其技能也不会高到哪里去。 

      Android做下来,感觉调试这块做的很不错了,这要感谢Eclipse IDE做的比较不错,但是Android的界面排版部分,真的不敢恭维,Eclipse时间用长了,占用内存真是大。有哪位高手能否告诉我下,你们界面排版是用什么的?

    Android里,如果程序出了问题,有些是一下跟踪不到的,这时就要用到Log类了,Log类使用很简单,就不多说了。
      自己一个很有感触的经验,如果你真的打算做Android开发,那就买一个设备,这样能大大提高开发效率,模拟器有时用起来真是麻烦,而且开发的设备不要很好的,只要设备分辨率是主流的,传感器的支持最好全点就够了,国产的手机里,华为的还不错,或者到淘宝上去买个二手的,投资不大。真的买了投资,可能也会增加你学习Android的决心。

           

    6. 程序框架

    经过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的作用。一个好的产品,如果有个好的程序框架,那真是事半功倍,可能开始所做的工作会比较多,很难看到令人激动的成果,但是相信我,绝对值得。一开始,我也是比较注重程序界面开发,很快就开发出界面来,而且着实比较激动,因为有东西出来了,但是后面的事情,真是令人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不允许,只有硬着头皮往上打补丁,硬着交付第一个版本,第二个版本或者后面的版本,迟早是要重来的。所以在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。

    刚接触Android,不知道用什么程序框架,所以查了很多资料,一开始看到一个程序框架,感觉很不错,所以一开始就使用了下面这个程序框架。

    开始这个框架用的蛮爽,简单介绍一下,主UI线程如果要做一个比较长时间的任务,创建一个任务,发送到任务队列中去,后台的Service不断的从任务队列中去取任务,然后交给线程处理,线程处理完后,通过消息(Message)发送到Handler里处理,然后Handler的handleMessage函数里回调到UI主线程中去。

    此框架的缺点是比较麻烦。

    1)首先这里有个Observer模式,每个Activity都要实现一个接口,然后注册到后台服务中去,这样后台服务才能把处理的结果回调到主线程中。

    2) 每个事件都要组成一个任务,发送到任务队列。

    3)后台线程先要取任务,然后处理,然后通过消息切换到主线程,然后又回到到相应的Activity中,中间有个3次判断当前是什么任务。

    4)不能并非,任务只能一个接一个,虽然这个一般不会造成瓶颈。

    因为摇摇2选1应用比较简单,所以后来感觉只要使用线程和Handler,通过消息就能处理,然后就查资料,发现已经有比较多的文章描述了这种方法,只是没提出这是一个框架,但是对摇摇2选1,我感觉已经足够了。下面就是主代码,分布在每个Activity中:

    private void TaskThread() 

    {

    Thread taskThread = new Thread()

    {

    @Override public void run()

    {

    //做耗时的任务 

     Message msg = Message.obtain();

    msg.what = 1;

    uiCallback.sendMessage(msg);

    }

    };

    taskThread .start();

    }

    private Handler uiCallback = new Handler()

    {

    @Override public void handleMessage(Message msg)

    {

    if(msg.what == 1)

    {

    //在主线程中处理结果 

    }

    }

    };

      够用就好,至少我现在用着很爽。

     

    7. 程序国际化

    互联网让地球成为一个村,所以一开始也需要了解一下程序是如何做国际化版本的。不要一开始字符串满天飞,整个程序中都存在hard code,这样做,迟早是要吃亏的。

     

    8.产品升级机制

    一个方便的产品升级机制,对产品的成长很重要,android是一个开放平台,在这点上比iOS做的好的多,产品升级很方便。 

     

    此文章的目的就是对想学Android开发的人一个指引,因为我也就是这么走过来的,加上自己在软件开发上的一些经验,让新手少走弯路。有计划,有目标的学习,这是最好的方法。


    转载请注明本文地址:看我是如何快速学习android开发的(一)
    展开全文
  • Android开发常用开源框架2 Android开发常用开源框架3 GitHub上最火的Android开源项目,所有开源项目都有详细资料和配套视频 2017年伊始,你需要尝试的25个Android第三方库 Android开发常用第三...

    Android开源框架系列

    开源框架

    开源框架

    开源框架

    https://github.com/JackChan1999/Android_Open_Project

    目录

    Square& JakeWharton

    框架名称 功能描述
    Picasso 一个强大的图片下载与缓存的库
    OkHttp Square出品,一个Http与Http/2的客户端
    Retrofit Square出品,类型安全的Http客户端
    ButterKnife 将Android视图和回调方法绑定到字段和方法上
    sqlbrite 一个响应式的数据查询框架
    keywhiz 一个隐私管理分配系统,能很好地与SOA配合
    LeakCanary 内存泄漏检测工具
    javapoet 动态生成Java源码
    phrase 字符串格式化
    dagger 依赖注入框架
    Flow Flow 将一个应用分成一个逻辑上的 Screen组合,Screen不是任何形式的特殊的库对象,而是一个被创造来代表我们应用视图的普通java对象(POJO)
    Mortar Mortar是一个专注拖拽和依赖注入的库,Mortar 用以下几个不同的部分将一个应用分为可组合的模块:Blueprints, Presenters and a boatload of custom Views
    RxBinding 可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI
    RxAndroid RxJava的扩展, 优雅地处理异步请求
    timber 对Android的Log类进行封装后的一个Log工具
    ViewPagerIndicator Paging indicator widgets compatible with the ViewPager
    DiskLruCache Java实现基于LRU的磁盘缓存
    Otto Otto 是 Square 公司出的一个事件库 (pub/sub 模式), 用来简化应用程序组件之间的通讯, otto 修改自 Google 的 Guava 库, 专门为 Android 平台进行了优化, 与上面介绍的 EventBus 相比, 两个库各有各的优点, 完全取决于我们自己项目的需求来选择它们哪一个
    javapoet A Java API for generating .java source files 动态生成Java源码

    阿里巴巴

    项目名称 功能描述
    freeline Freeline 是 Android 平台上的秒级编译方案,Instant Run 的替代品,也可以从 Freeline 官方主页来获取更多的信息。Freeline 由蚂蚁聚宝 Android 团队开发,它可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline能够为Android开发者节省很多喝杯咖啡的时间
    weex A framework for building Mobile cross-platform UI
    fastjson A fast JSON parser/generator for Java
    Dubbo Dubbo is a distributed, high performance RPC framework enpowering applications with service import/export capabilities
    AndFix AndFix is a library that offer hot-fix for Android App.
    dexposed dexposed enable ‘god’ mode for single android application.

    小米开源项目

    项目名称 功能描述
    Notes 小米便签社区开源版
    FileExplorer MIUI文件管理器社区开源版
    SoundRecorder MIUI录音机社区开源版

    Google开源项目

    项目名称 功能描述
    GCM Google Cloud Messaging 消息推送
    iosched: Google I/O Android App
    android-topeka Google官方给出的material design应用指南
    android-UniversalMusicPlayer Google官方给出的m音乐播放器,支持Android phones, tablets, Auto, Wear and Cast devices
    ExoPlayer An extensible media player for Android
    guava Google Core Libraries for Java 6+
    flexbox-layout FlexboxLayout is a library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android.
    guice 轻量级的依赖注入框架
    gson A Java serialization/deserialization library that can convert Java Objects into JSON and back.
    protobuf Protocol Buffers - Google’s data interchange format
    material-design-icons Material Design icons by Google
    auto Auto 是 Java 生成器源代码集合,包括:AutoFactory - 兼容 JSR-330 的工厂;AutoService - ServiceLoader 的 Provider-configuration 文件;AutoValue - Java 1.6+ 的不可变 value-type 代码生成;Common - Helper 实用工具,用来编写注释处理器
    android-architecture A collection of samples to discuss and showcase different architectural tools and patterns for Android apps

    android-topeka

    categories.pngcategory_history.pngquiz_shakespeare.png

    android-UniversalMusicPlayer

    phone.pngphone_lockscreen.pngphone_fullscreen_player.png

    ExoPlayer

    An extensible media player for Android

    Streaming media with ExoPlayer - Google I/O 2016

    guava

    flexbox-layout

    flex-direction.gif

    1、图片加载,缓存,处理

    框架名称 功能描述
    Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时
    Picasso 一个强大的图片下载与缓存的库
    Fresco 一个用于管理图像和他们使用的内存的库
    Glide 一个图片加载和缓存的库,使用的App有:网易新闻
    GlidePalette Android Lollipop Palette is now easy to use with Glide
    PicassoPalette Android Lollipop Palette is now easy to use with Picasso !
    Picasso-transformations 一个为Picasso提供多种图片变换的库
    Glide-transformations 一个为Glide提供多种图片变换的库


    Picasso是著名的开源组织Square出品的图片处理框架,使用的比较多

    Glide是Google的员工基于Picasso开发,优化的,Android官网推荐使用的图片处理框架

    Fresco是Facebook开源的图片处理框架,真正做到了三级缓存,功能强大,强烈推荐使用

    Android Universal Image Loader是一个老牌的图片处理框架,但是在2015年的9月份已经停止更新维护,所以不推荐使用

    2、图片裁剪

    框架名称 功能描述
    uCrop Image Cropping Library for Android,使用的App有:薄荷,哔哩哔哩
    android-crop 图片裁剪,使用的App有:网易新闻,芒果TV
    cropper 图片裁剪开源框架
    Android-Image-Cropper Image Cropping Library for Android, optimized for Camera / Gallery
    PhotoCropper Android 大图片裁剪终极解决方案
    android-cropimage CropImage Activity from Gallery.apk packaged as a reusable Android library
    PhotoCrop A Library which can be used to crop images in Android similar to Facebook and Telegram,使用的App有:快手

    uCrop

    android-crop

    Android-Image-Cropper

    PhotoCropper

    PhotoCrop

    3、图片选择

    框架名称 功能描述
    MultiImageSelector 图片选择,使用的App有:薄荷
    BGAPhotoPicker-Android Android 图片选择、预览、九宫格图片控件、拖拽排序九宫格图片控件
    TakePhoto 轻量级Android照片处理框架
    RxGalleryFinal Android图片单选/多选、拍照、裁剪、压缩。视频选择和录制。GalleryFinal
    boxing 一个多媒体选择器库,B站出品。可以选择一张或者多张图片,提供预览和裁剪功能。同样支持gif图,选择视频和图像压缩功能。

    boxing

    multi_image.webpsingle_image_crop.webpvideo.webp

    MultiImageSelector

    BGAPhotoPicker-Android

    TakePhoto

    预览图
    运行效果图

    RxGalleryFinal

    4、图片转换,压缩,滤镜

    框架名称 功能描述
    Android-gpuimage 一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜,使用的App有:快手
    photoview 使用的App有:薄荷,网易新闻
    circleimageview 圆形图片,使用的App有:薄荷
    RoundedImageView 圆形图片,使用的App有:薄荷
    SelectableRoundedImageView Android ImageView that supports different radii on each corner
    android-gif-drawable gif图片,使用的App有:网易新闻,快手
    Luban 可能是最接近微信朋友圈的图片压缩算法
    Compressor Compressor is a lightweight and powerful android image compression library

    Android-gpuimage

    circleimageview

    68747470733a2f2f7261772e6769746875622e636f6d2f68646f64656e686f662f436972636c65496d616765566965772f6d61737465722f73637265656e73686f742e706e67

    RoundedImageView

    SelectableRoundedImageView

    )

    5、高斯模糊,毛玻璃,图片模糊

    框架名称 功能描述
    android-stackblur Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann.
    Blurry Blurry is an easy blur library for Android
    blurkit-android The missing Android blurring library. Fast blur-behind layout that parallels iOS.
    BlurView Dynamic iOS-like blur of underlying Views for Android
    ImageBlurring Android blurring image(bitmap) by java and jni

    android-stackblur

    68747470733a2f2f7261772e6769746875622e636f6d2f6b696b6f736f2f616e64726f69642d737461636b626c75722f6d61737465722f6172742f73637265656e73686f74312e706e6768747470733a2f2f7261772e6769746875622e636f6d2f6b696b6f736f2f616e64726f69642d737461636b626c75722f6d61737465722f6172742f73637265656e73686f74322e706e67

    Blurry

    blurkit-android

    BlurView

    BlurScreenshot.png

    ImageBlurring

    anim.gif

    缓存

    框架名称 功能描述
    LruCache Android原生API,内存缓存
    DiskLruCache Java实现基于LRU的磁盘缓存
    ASimpleCache 一个为android制定的轻量级的开源缓存框架
    base-diskcache Android 缓存库,融合了DiskLruCache和ASimpleCache

    网络请求

    框架名称 功能描述
    httpclient apache开源的网络请求框架,已过时
    AsyncHttpClient 基于httpclient封装,已过时
    OkHttp Square出品,一个Http与Http/2的客户端
    Retrofit Square出品,类型安全的Http客户端
    Volley Google推出的Android异步网络请求框架和图片加载框架,使用的App有:网易新闻


    从Android 6.0 开始,Google删除了apache的开源网络请求框架httpclient,所以基于httpclient的AsyncHttpClient也不推荐使用了

    Volley适合那些请求频繁但数据量不大的场景,不适用于大数据的请求,比如下载文件

    Android 6.0 后,Android开始使用OkHttp,而Retrofit是一个网络代理框架,可以更简单的使用OkHttp

    网络解析

    框架名称 功能描述
    Gson 一个Java序列化/反序列化库,可以将JSON和java对象互相转换
    Jackson Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象
    Fastjson Java上一个快速的JSON解析器/生成器
    HtmlPaser 一种用来解析单个独立html或嵌套html的方式
    Jsoup 一个以最好的DOM,CSS和jQuery解析html的库

    数据库

    框架名称 功能描述
    OrmLite JDBC和Android的轻量级ORM java包
    Sugar 用超级简单的方法处理Android数据库
    GreenDAO 一种轻快地将对象映射到SQLite数据库的ORM解决方案,使用的App有:薄荷,京东
    ActiveAndroid 以活动记录方式为Android SQLite提供持久化
    SQLBrite SQLiteOpenHelper 和ContentResolver的轻量级包装
    android-database-sqlcipher 数据库加密
    storio Beautiful API for SQLiteDatabase and ContentResolver
    realm-java 移动数据库,高性能数据库:一个SQLite和ORM的替换品
    ObjectBox 相信不少人都用过GreenDao和EventBus,这两库都是greenrobot公司出品。ObjectBox也是该公司出品。GreenDao号称是最快的与SQLite的对象关系映射(ORM)。但是自从2011年以来,公司声称发现了许多的缺陷,有很多问题影响了性能。所以开发出另外一套性能最好且易用的NoSQL数据库,优于其他数据库5-15倍的性能。

    依赖注入

    框架名称 功能描述
    ButterKnife 将Android视图和回调方法绑定到字段和方法上
    Dagger2 一个Android和java快速依赖注射器
    AndroidAnotations 快速安卓开发。易于维护
    RoboGuice Android平台的Google Guice 已退役
    guice Google开发的依赖注入框架

    图表Chart

    框架名称 功能描述
    WilliamChart 创建图表的Android库
    HelloCharts 兼容到API8的Android图表库,使用的App有:薄荷
    MPAndroidChart 一个强大的Android图表视图/图形库,使用的App有:春雨医生

    后台处理

    框架名称 功能描述
    Tape 一个轻快的,事务性的,基于文件的FIFO的库
    Android Priority Job Queue 一个专门为Android轻松调度任务的工作队列

    事件总线

    框架名称 功能描述
    EventBus 安卓优化的事件总线,简化了活动、片段、线程、服务等的通信,使用的App有:薄荷
    Otto 一个基于Guava的增强的事件总线
    HermesEventBus 一个基于EventBus的、能在进程间发送和接收event的库,在IPC或者插件开发中非常有用

    响应式编程

    框架名称 功能描述
    RxJava JVM上的响应式扩展
    RxJavaJoins 为RxJava提供Joins操作
    RxAndroid Android上的响应式扩展,在RxJava基础上添加了Android线程调度
    RxBinding 提供用RxJava绑定Android UI的API
    Agera Android上的响应式编程
    RxLifecycle Lifecycle handling APIs for Android apps using RxJava

    Log框架

    框架名称 功能描述
    Logger 简单,漂亮,强大的Android日志工具
    Hugo 在调试版本上注解的触发方法进行日志记录
    Timber 一个小的,可扩展的日志工具

    测试框架

    框架名称 功能描述
    Mockito Java编写的Mocking单元测试框架
    Robotium Android UI 测试
    Robolectric Android单元测试框架


    Android自带很多测试工具:JUnit,Monkeyrunner,UiAutomator,Espresso等

    调试框架

    框架名称 功能描述
    Stetho 调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试

    性能优化

    框架名称 功能描述
    LeakCanary 内存泄漏检测工具
    BlockCanary 轻松找出Android App界面卡顿元凶
    ACRA Android应用程序崩溃报告
    Google Guava Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。
    google protobuf 由google开发,并且在google内部使用。Protobuf的作用和xml、json是一回事,但他是二进制格式,性能好、效率高。ProtoBuf开发者指南

    热修复

    框架名称 功能描述
    tinker 腾讯开源的一个热修复框架
    AndFix alibaba热修复框架
    dexposed alibaba热修复框架

    二维码

    框架名称 功能描述
    Zxing 一个二维码开源框架
    barcodescanner 使用的App有:薄荷
    BGAQRCode-Android 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
    zxing-android-embedded 使用的App有:春雨医生,芒果TV

    多媒体

    框架名称 功能描述
    ijkplayer Bilibili开源的视频播放器
    DanmakuFlameMaster Android开源弹幕引擎·烈焰弹幕使,使用的App有:网易新闻
    Vitamio 一款全能多媒体开发框架,全面支持硬件解码与 GPU 渲染
    FFmpeg 一个基于C语言的多媒体开源框架
    百度媒体云 基于百度视频处理、人脸识别、语音等技术媒体相关的整体解决方案
    ExoPlayer Google开源的视频播放器

     

    KSYStreamer_Android

    金山云Android采集推流SDK(Livestream SDK),支持内置/自定义美颜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Voice Mixer)、混响(Reverb)、画中画(PIP)、连麦(RTC)、动态贴纸(Sticker)

    KSYMediaPlayer_Android

    金山云Android播放SDK(KSYUN Live Streaming player SDK),支持RTMP HTTP-FLV HLS 协议(supporting RTMP HTTP-FLV HLS protocol),直播延时2-3秒(Living delay 2 or 3 seconds),supporting jitter control,software&hardware decode

    KSYLive_Android

    Android播放&推流融合版本[Android Play and LiveStreaming SDK] 直播延时2-3秒(Living delay 2 or 3 seconds),supporting jitter control,software&hardware decode, 支持内置/自定义美颜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Voice Mixer)、混响(Reverb)、画中画(PIP)

    KSYMediaPlayer_Android

    金山云Android播放SDK(KSYUN Live Streaming player SDK),支持RTMP HTTP-FLV HLS 协议(supporting RTMP HTTP-FLV HLS protocol),直播延时2-3秒(Living delay 2 or 3 seconds),supporting jitter control,software&hardware decode

    MD360Player4Android

    Android上全景视频渲染的库

    MD360Player4Android

    汉语转拼音

    框架名称 功能描述
    pinyin4j https://github.com/belerweb/pinyin4j
    TinyPinyin 适用于Java和Android的快速、低内存占用的汉字转拼音库。
    PinyinSearchLibrary The library of PinyinSearch,a Java Library which provide data parsing methods, data matching method and so on for T9 search and Qwerty search.PinyinSearch = T9Search + QwertySearch
    com.pinyin4android 唯品会使用

    下载

    框架名称 功能描述
    MultiThreadDownload 使用的App有:薄荷
    FileDownloader Android 文件下载引擎,稳定、高效、灵活、简单易用
    RxDownload 基于RxJava和Retrofit打造的下载工具, 支持多线程下载和断点续传, 智能判断是否支持断点续传等功能
    file-downloader 安卓上轻量级Http/Https文件下载框架,我的目标是让安卓文件下载越简单越好,尽可能以最简洁明了的方式完成复杂需求。

    动画

    框架名称 功能描述
    facebook:rebound A Java library that models spring dynamics and adds real world physics to your app
    ViewAnimator A fluent Android animation library
    Material-Animations Android Transition animations explanation with examples
    AndroidViewAnimations Cute view animation collection.
    ListViewAnimations An Android library which allows developers to easily add animations to ListView items
    recyclerview-animators An Android Animation library which easily add itemanimator to RecyclerView items.
    RecyclerViewItemAnimators An Android library which provides simple Item animations to RecyclerView items
    AnimationEasingFunctions Android Animation Easing Functions. Let’s make animation more real!
    BaseAnimation BaseAnimation收集网络Android相关动画集合,自定义控件等,近200多种源码
    FragmentAnimations 3D animations for support-v4 Fragment transition.
    AnimatedEditText Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.
    ViewPagerTransforms Library containing common animations needed for transforming ViewPager scrolling for Android v13+
    lottie-android Render After Effects animations natively on Android and iOS

    Android选择器类库

    包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等

    框架名称 功能描述
    material-calendarview material design 风格的日历控件使用的App有:薄荷
    MaterialDateTimePicker Pick a date or time on Android in style,使用的App有:薄荷
    android-times-square Standalone Android widget for picking a single date from a calendar view.
    AndroidPicker 安卓选择器类库,包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等。
    Android-PickerView 仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果
    WheelPicker Simple and fantastic wheel view in realistic effect for android.
    Android-FilePicker Photopicker and document picker for android
    NumberPickerView another NumberPicker with more flexible attributes on Android platform
    Android-PickerView-Library Simple PickerView for Android

    Rajawali

    Rajawali是一个用于Android应用的3D引擎,基于 OpenGL ES 2.0。它可以用于普通的应用程序,以及实时壁纸。使用的App有:网易新闻

    aspectj

    AspectJ是一个面向切面的框架,它扩展了Java语言。使用的App有:网易新闻

    Apache Thrift

    可伸缩的跨语言服务开发框架,使用的App有:网易新闻

    Fabric SDK

    https://realm.io/cn/news/oredev-ty-smith-building-android-sdks-fabric/?utm_source=tuicool&utm_medium=referral

    GNU Trove

    Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 Collections 类的版本。使用的App有:网易新闻

    Java-WebSocket

    简单的说,websocket就是用来做网页聊天以及手机推送用的。使用的App有薄荷

    以前不管使用HTTP轮询或使用TCP长连接等方式制作在线聊天系统,都有天然缺陷,随着HTML5的兴起,其中有一个新的协议WebSocket protocol,可实现浏览器与服务器全双工通信(full-duplex),它可以做到:浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。这个新的协议的特点正好适合这种在线即时通信。

    现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。

    而最比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求。

    在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

    org.eclipse.mat

    内存分析。使用的App有薄荷,网易新闻

    CommonAdapter

    使用的App有:薄荷

    Android-Best-Practices

    JKeyboardPanelSwitch

    Android键盘面板冲突 布局闪动处理方案

    起源,之前在微信工作的时候,为了给用户带来更好的基础体验,做了很多尝试,踩了很多输入法的坑,特别是动态调整键盘高度,二级页面是透明背景,魅族早期的Smart bar等, 后来逐一完善了,考虑到拥抱开源,看业界还是有很多应用存在类似问题。就有了这个repo

    使用的App有:薄荷

    美洽

    最快连接你与顾客 美洽,在线客服软件的漂亮之选

    MeiqiaSDK-Android https://github.com/Meiqia/MeiqiaSDK-Android

    使用的App有:薄荷

    logger

    使用的App有:薄荷

    DeepLinkDispatch

    最常见的应用就是在网页中跳转到App的某个页面,电商类应用可是都用了的。根据data跳转不同的页面

    使用的App有:京东

    Crouton

    Context sensitive notifications for Android

    Bolts-Android 一个底层库集合

    com.arcsoft.livebroadcast

    ReLinker

    Relink是一个加载Android so文件(shared library)的一个库。

    在Android平台上加载本地库的危险性

    kik

    CHAT ON KIK

    Kik lets you connect with friends, 
    groups and the world around you 
    through chat. And now, you can 
    chat with bots too.

    nanohttpd

    嵌入式HTTP服务器 ,NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。可轻松定制临时文件使用和线程模型。

    i-jetty

    jetty经过交叉编译移植到android平台的web服务器软件,它可以部署web网站

    com.googlecode.mp4parser

    Sparta

    com.hp.hpl.sparta:XML、DOM、XPath解析器,http://sparta-xml.sourceforge.net/

    JRegex

    JRegex:jregex:正则表达式库

    NativeSubprocess

    唯品会使用

    NativeSubprocess 是一个可以让你在android 程序中创建Linux子进程并执行你的java代码的so库。由于市面上典型的内存清理工具只清理apk 包关联的进程,而不会处理linux原生进程,所以NativeSubprocess 可以做什么您懂的!

    androidquery

    Android-Query(AQuery)是一个轻量级的开发包,用于实现 Android 上的异步任务和操作 UI 元素,可让 Android 应用开发更简单、更容易,也更有趣。

    唯品会使用,https://github.com/androidquery/androidquery

    MarsDaemon

    进程常驻,进程保活

    唯品会使用 https://github.com/Marswin/MarsDaemon

    SA-iSecurity

    SA-iSecurity 客户端安全输入系统,唯品会使用

    口碑推荐平台TapReason

    TapReason提供了一款无广告的App增长解决方案。他们的广告是最值得信赖的,因为这些广告都是来自于好友或同事的推荐。唯品会使用

    ImageViewZoom

    Android ImageView widget with zoom and pan capabilities,春雨医生使用

    LayoutCast

    Cast android code and resource changes to the running application through ADB. 
    Android SDK sucks. It’s so slow to build and run which waste me a lot of time every day.

    把代码和资源文件的改动直接同步到手机上,应用不需要重启。省去了编译运行漫长的等待,比较适合真机调试的时候使用。

    Joda-Time

    JodaTime 提供了一组Java类包用于处理包括ISO8601标准在内的date和time。可以利用它把JDK Date和Calendar类完全替换掉,而且仍然能够提供很好的集成。

    Joda-Time主要的特点包括:

    1. 易于使用:Calendar让获取”正常的”的日期变得很困难,使它没办法提供简单的方法,而Joda-Time能够 直接进行访问域并且索引值1就是代表January。
    2. 易于扩展:JDK支持多日历系统是通过Calendar的子类来实现,这样就显示的非常笨重而且事实 上要实现其它日历系统是很困难的。Joda-Time支持多日历系统是通过基于Chronology类的插件体系来实现。
    3. 提供一组完整的功能:它打算提供 所有关系到date-time计算的功能.Joda-Time当前支持6种日历系统,而且在将来还会继续添加。有着比JDK Calendar更好的整体性能等等。

    https://github.com/JodaOrg/joda-time

    msgpack

    MessagePack是一个基于二进制高效的对象序列化Library用于跨语言通信。 
    它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。 比Google Protocol Buffers还要快4倍

    https://github.com/msgpack/msgpack-java

    scribejava

    ScribeJava 是一个简单的 Java 实现的 OAuth/OAuth2 库。

    Logback

    Logback是由log4j创始人Ceki Gülcü设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。

    frame-video-view

    No more issues with VideoView

    JakeWharton scalpel

    Jake Wharton,Android开发领域传奇一般的存在,熟悉Android开发的同学应该都听说过,即便没有,也应该会经常用到他主导或参与贡献的开源 项目,他在GitHub上开源了多个Android兼容性、依赖注入相关的知名项目,目前就职Square, 也参与贡献了Square公司开源的诸如Retrofit, okhttp等热门项目。

    Jake大神喜欢以刀命名自己的项目,可能他觉得这能很好的表达它们作为开发利器的犀利程度,不过没准他也很喜欢中国武侠小说呢。

    他最有名的两把刀,一把是Dagger, 匕首,一个依赖注入框架,用来解耦开发中各模块依赖的,最早由他开发与维护,后来转给Google维护;另一把是同样大名鼎鼎的ButterKnife, 黄油刀,有了它,你再也不用写findViewById了,以后有机会给大家详细介绍它们。

    今天的主角是它们不那么知名的小兄弟,Scalpel,这把非常酷炫实用的解剖刀。

    他其实就是实现了一个三维效果的界面布局层次展示,不需要手机连接开发设备,只需要简单几行代码将其集成到你的应用中,即可开启酷炫之旅,它提供的功能包括:

    • 通过setLayerInteractionEnabled(boolean)可开启与关闭此功能。

    • 通过setDrawViews(boolean)可控制是否绘制View, 也就是说它可以仅仅是个简单的布局线框图,也可以是色彩丰富的真实效果图。

    • 通过setDrawIds(boolean)可控制是否显示各控件的Id, 你就能知道你自己正在调试的那个控件到底在哪了?

    • 通过setChromeColor,setChromeShadowColor可自定义线框图的颜色,随你喜欢。

    material-camera

    https://github.com/afollestad/material-camera

    material-camera

    hawk

    Android的安全、简单Key-Value存储

    bugsnag

    Bugsnag crash reporting for Android apps ,Bugsnag exception reporter for Android

    goldengate

    An Android annotation processor for generating type safe JavaScript bindings (Bridges)

    Helpshift

    slf4j

    SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。

    Nuwa热修复

    Nuwa, pure Java implementation, can hotfix your android application.

    Android 热修复Nuwa的原理及Gradle插件源码解析

    megvii人脸识别

    RadiusNetworks

    http://www.radiusnetworks.com/

    https://github.com/RadiusNetworks

    Swiper

    • 开源,免费,强大的移动端触摸滑动插件

    • Swiper常用于移动端网站的内容触摸滑动

    • Swiper3依然拥有progress,这是制作3D切换效果的利器

    • 在Swiper上加些小动画,制作高大上的展示

    Netty

    Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

    也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

    “快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

    cheesesquare:Demos the new Android Design library

    FBReaderJ

    FBReaderJ是一个Android 平台上的电子书阅读器。这是一个Java版的FBReader图书阅读器的克隆。 FBReaderJ支持多种电子书格式: oeb , epub ,和fb2 。直读从zip、tar和gzip等格式

    hawtdispatch

    HawtDispatch is a small ( less than 100k ) thread pooling and NIO handling framework API modeled after the libdispatch API. libdispatch is the API that Apple created to power the Grand Central Dispatch (GCD) technology in OS X. It allows you to more easily develop multi-threaded applications which can more easily scale to take advantage of all the processing cores on your machine. At the same time, its development model simplifies solving many of the problems that plague multi-threaded NIO development.

    ZeroMQ 一个轻量级消息内核

    autobahn-android

    WebSocket & WAMP in Java for Android

    Robotium

    Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。

    One Step & Big Bang

    锤子科技的一小步,智能手机进化的一大步


    什么是一步(One Step)?

    通过拖拽完成将信息发送至应用或联系人的动作,节省了在不同应用之间切换的诸多步骤,第一次打通了手持设备中应用间的边界

    进一步了解 One Step

    什么是大爆炸(Big Bang)?

    用拇指大面积按压屏幕中的文字,Big Bang 会将你按住的那一段文字全部“炸”开并且按照语义智能拆分成易于选取的独立的字和词,由你随心所欲地选择,并可直接搜索、分享和复制。Big Bang 开创性地解决了在手机这样的小屏幕上难于处理文字的弊端

    展开全文
  • 目前关于AS(Android Studio)的环境搭建网上已经有很多教程了,但是实际操作起来还是会有各种意想不到的问题,对于大多数开发者来说可能还是会有困难,本教程根据笔者亲身实践,将搭建过程中的各种问题总结出来,方便...
  • Android开发入门基础

    2017-09-18 16:19:25
    Android是基于Linux的修改版本的移动操作系统。 大多数Android代码是在开源Apache许可证下发布的。本文将简单介绍Android开发入门知识。
  • 举个栗子 实现功能:可以通过页面输入改变要显示的字符,然后通过按钮可以实现显示字符的放大功能。最终如下: 一共四个控件:一个text输入,一个text显示,一个输入修改确认按钮,一个放大按钮 ...
  • 全文约1500字,阅读大约需要5分钟现在我们开始一个“HelloWorld”项目,从此刻开始我们的Android开发之旅。*以下操作基于Android Studio v3.0.1版本*Android Studio以下简称AS一.第一步当然是先运行AS了,如此炫酷...
  • 这一个简单实用的小程序包含了短信,电话,定位等多种功能; 但其原理十分简单,界面还有待优化一下;...android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.c...
  • 为了帮助大家更好的学习Android开发的相关知识,尚观4G智能操作系统研究室(www.up4g.com)为大家制作以下学习路线图;希望能帮助到广大的android爱好者。 在开始之前我们先来对相关知识进行一个简单的了解: ...
  • 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 2.2 Windows开发环境搭建 2.2.1 JDK、Eclipse、Android...
  • 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯;另一方面希望通过分享自己的经验教训,与网友互相切磋,...还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来。个人的经验...
  • 在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入...
  • 使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件。 1.安装JDK 1.7
  • 这片文章发布,代表着我已经把本书和看完并且笔记...Android开发艺术探索——新的征程,程序人生路漫漫! Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式 Android开发艺术探索——第二章:IPC...
1 2 3 4 5 ... 20
收藏数 797,025
精华内容 318,810
关键字:

android开发