Ⅰ android有哪些第三方框架
ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具。 目前ThinkAndroid主要有以下模块: MVC模块:实现视图与模型的分离。 ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。 网络状态检测模块:当网络状态改变时,对网络状态进行检测。
Ⅱ android 开发框架有哪些
主要总结了7个好用的android 开发框架推荐给你:
一、 Afinal
Afinal是一个Android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。
功能:
一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。
优点:功能比较全面,文档完善,代码效率比较高。
缺点:没有项目demo,框架的时间比较久,代码冗余比较多(这也是无可避免的),文档比较老跟不上代码更新进度。
二、 xUtils
xUtils:可以说是Afinal的升级版。
xUtils 包含了很多实用的android工具。
xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
xUitls 最低兼容android 2.2 (api level 8)
三、 ThinkAndroid
ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android
mvc、简易sqlite orm、ioc模块、封装Android
httpclitent的http模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具
四、 LoonAndroid
如果你想看ui方面的东西,这里没有,想要看牛逼的效果这里也没有。这只是纯实现功能的框架,它的目标是节省代码量,降低耦合,让代码层次看起来更清晰。整个框架一部分是网上的,一部分是我改的,为了适应我的编码习惯,还有一部分像orm完全是网上的组件。在此感谢那些朋友们。
整个框架式的初衷是为了偷懒,之前都是一个功能一个jar,做项目的时候拉进去,这样对于我来说依然还是比较麻烦。最后就导致我把所有的jar做成了一个工具集合包。
有很多框架都含有这个工具集合里的功能,这些不一定都好用,因为这是根据我个人使用喜欢来实现的,如果你们有自己的想法,可以自己把架包解压了以后,源码拉出来改动下。
目前很多框架都用到了注解,除了androidannotations没有入侵我们应用的代码以外,其他的基本上都有,要么是必须继承框架里面的activity,要么是必须在activity的oncreat里面调用某个方法。
整个框架式不同于androidannotations,Roboguice等ioc框架,这是一个类似spring的实现方式。在整应用的生命周期中找到切入点,然后对activity的生命周期进行拦截,然后插入自己的功能。
五、 KJFrameForAndroid
KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc
框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用;
KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。我们提倡用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。
功能:
一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用;
KJFrameForAndroid开发框架的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。总共分为五大模块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。
六、 dhroid
dhroid 是基于android 平台,
极速开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展.使你更快,更好的开发商业级别应用
功能:
1.Ioc容器: (用过spring的都知道)视图注入,对象注入,接口注入,解决类依赖关系
2.Eventbus: android平台事件总线框架,独创延时事件,事件管理轻松
3.Dhnet: 网络http请求的解决方案,使用简单,减少代码,自带多种网络访问缓存策略
4.adapter模块: 数据绑定轻松,不用写多余的adapter,天生网络支持(一行代码搞定加载,刷新问题)
5.DhDb: android中sqlite的最轻量orm框架(增删改查轻松搞定)
6.Perference: android自带Perference 升级版,让你的Perference更强大,更方便
工具集合 JSONUtil(安全处理json),ViewUtil(数据绑定更快) ThreadWorker(异步任务工具)...
七、 SmartAndroid
SmartAndroid是一套给
Android开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。使用
SmartAndroid可以减少代码的编写量,并将你的精力投入到项目的创造性开发上。
功能:
SmartAndroid 拥有全范围的类库,可以完成大多数通常需要的APP开发任务,包括:
异步网络操作相关所有功能、强大的图片处理操作、轻量级ORM数据库Sqlite库、zip操作
、动画特效、Html等解析采集、事件总线EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件(例如:ActionbarSherlock,SlidingMenu,BottomView,Actionbar,DragListView等10多种UI库)等。
Ⅲ android几种网络框架的比较
现在 OkHttp 已经一统 android 的江山,但是基于 OkHttp 再次封装的 框架层出不穷
推荐直接使用 OkHttp 的增强版本 OkHttps , 15秒便可上手,超级好用,这是官方中文文档地址:okhttps.ejlchina.com
Ⅳ android从程序员到架构师之路的作品目录
Part-1: 从架构到代码的过程
1.1 敏捷与架构的完美组合 敏捷开发的原则和价值观 开发、架构、测试之关系 架构在敏捷过程里的角色 架构师在敏捷过程的职责 过程观点:(需求)测试做<反馈>,敏捷(过程)做<迭代>; 分合观点:(架构)设计做<分>,(代码)开发做<合> 测试触发反馈,反馈带动迭代,迭代驱动<架构à代码>重构 迭代促进了<架构师&开发者>的心灵沟通与携手协作 举例:架构师如何设计敏捷的起始架构(Simple Solution) 加法设计:围绕问题( Problem)和愿景(Vision),产生创意构想(Creative Idea) 减法设计:创意爱上限制(Creativity loves constraint) 1.2 代码是架构的外貌,永远青春 架构师与开发者的合作成果:架构+代码=软件(系统) 架构是软件的骨架、代码是软件的外貌 架构是软件的核心 架构的用意:创新组<合> 架构设计的焦点:接口(Interface) 设计决策具有<未来性>,系统才能适应未来 1.3 设计与开发的分工合作 架构设计的目的是:组合 架构师做<分>,支持开发者做<合>,合作实践(系统)组合 分得妙,就能合得快(即:分之以为用,合之以为利) 分得妙,就能得好接口(Interface) 架构师的核心工作:接口设计(Interface Design) 开发者的核心工作:依据接口,开发(系统)模块并整合 有许多种开发者:如App开发者、底层系统开发者等 1.4 敏捷思维:尽快呈现架构的外貌 接口设计是<物>的组合设计 接口设计是<事>的分工设计 架构师设计多种接口来支撑分工与组合 架构师心中的4种接口:SI、PI、API和UI SI:本架构与外部系统之间的整合接口 PI:本架构与内部挿件(Plug-in)之间的接口 API:本架构与应用程序(App)之间的接口 UI:App与用户的互动接口 l 依循敏捷原则,接口迅速落实为代码,尽快呈现外貌
1.5 EIT造形:接口美丽的外貌 认识EIT软件造形 EIT造形:呈现核心设计的外貌 EIT造形的<I>可涵盖三种:SI、PI、API EIT造形的<E>代表本架构 EIT造形的<T>代表本架构的配件(即插件:Plug-in) 1.6 一群<E&I>美妙的组合是:框架(Framework) 认识GoF的设计模式(Design Pattern) 随着敏捷的迭代过程,EIT造形会逐渐增加 如何巧妙组合渐增的EIT造形:擅用设计模式 组合起来,就成为软件框架了 如何迭成多层级(Layer)的框架体系:以Android为例 Part-2: 从Android框架代码中学习设计
2.1 基础设计模式(Pattern)的代码:以Android为例 Template Method模式:IoC(控制反转)机制 Observer模式:接口设计 Abstract Factory模式:两个EIT造形的组合 Adapter模式:封装接口 Composite模式:实践组合 Façade模式:组合体的接口设计 EIT造形是原子,设计模式是分子 更多EIT造形的组合模式:以Android代码为例 2.2 从 UI框架入手 View体系的架构设计(使用Template Method模式) Activity-View的架构设计(使用Factory模式) Layout-View的架构设计(使用Composite模式) WMS(WindowManagerService)-View的架构设计 WMS-SurfaceFlinger的架构设计 Surface-Canvas(画布)的架构设计 SurfaceView与OpenGL的3D绘图架构设计 ListView框架的设计 2.3 跨进程(IPC)架构设计 Android 的IPC幕后设计:BD(Binder Driver)驱动架构 以IBinder接口包装BD驱动的服务 包装IBinder接口的Proxy-Stub设计模式 Proxy和Stub类别的代码 设计Proxy和Stub类别的API 如何自动生成Proxy和Stub类别代码 IBinder & AIDL方法 方法(一):Implementing a Binder 方法(二):Using a Messenger 方法(三):Bound Services 2.4 Java与C/C++两层框架的设计 JNI(Java Native Interface)代码开发要点 JNI的数据型态(Data Type)转换规则 JNI的线程(Thread)模式:JNIENV类的设计 正向通信:Java函数调用本地C函数 反向通信:本地C函数调用Java函数 Android HAL架构设计 HAL(Hardware Abstraction Layer)的意义 理解runtime与HAL Stub 撰写HAL Stub代码 Stub调用Linux Kernel的方法 2.5 核心服务的框架设计 认识核心服务(Core Service) 核心服务都是在开机过程中,由Android的INIT进程启动的 包括Android Service和 Native Service两种 以Java语言撰写的,就称为Android Service 以C++撰写的,就称为Native Service 亲自撰写一个核心服务 撰写一个C++类别 继承BBinder基类,继承得来IBinder界面 提供接口给Java层(透过JNI)调用 2.6 JUnit测试框架的设计 Android的测试工具,都是基于JUnit测试框架的 JUnit框架也是由许多EIT造形所组成;其TestCase基类是<E&I> 从基类衍生出各子类,如ServiceTestCase就是扩充的<E&I>;其内涵的setUP()和tearDown()函数就是<I> 可撰写<T>(即Test case)代码,来启动TDD机制 可使用TestSuite基类来管理一群相关的<T>(即Test case) Part-3: 梳理你的架构设计思想、方法和模式
3.1 复习设计概念与技艺
概念复习 说明框架的起源、分层与其“无用之用”效果 阐述应用框架魅力的泉源:控制反转(IoC, Inversion of Control)机制 深入认识控制反转机制 主控者是框架,而不是应用程序 现代应用框架:采取广义IoC观念 框架的重要功能:提供默认行为(Default Behavior) 技艺复习 抽象(无之)与衍生(有之) 打造框架:细腻的抽象步骤 基本步骤: 细腻的手艺(一):数据抽象 细腻的手艺(二):函数抽象 细腻的手艺(三):将抽象类别转为接口 善用类的继承(Inheritance)机制 设计基类的抽象函数 抽象是手段,组合是目的 UML复习 UML的3种基本图表:类图、顺序图和用例图 以UML表达设计模式和框架 EIT造形的两种表达:UML图和代码 3.2 架构设计的需求分析方法 基本设计技能:把轮胎拔掉 伟大的雕刻师罗丹( Musée Rodin)说:”把不必要的部分去掉” 买主需求:想想为什么(why)汽车架构师会决定把轮胎拔掉呢? 其背后的理由是:买主来了,才知道买主对轮胎的偏好或特殊需求。只有等到买主决定和挑选了轮胎之后,才能将轮胎装配上去。 探索买主需求 为什么把轮胎拔掉呢? 为什么火锅店的桌子要挖洞呢? 为什么餐厅要分开<食谱>与<点菜单>呢? 3.3 接口设计模式 什么是接口(Interface) 在OOP里,将接口定义为一种特殊的类别(Class) 在Java里,将”纯粹抽象类别”称为接口(Interface) EIT造形的接口表示为<I> <I>可以合并到<E>里 谁控制<I>? <E>成为控制点 引擎<E>à<I>à驱动轮胎<T> 如何控制API ? UI与API 被动型API与主动型API API与商业模式 API决定控制权&金流 没钱就改版,改版就有钱 以HAL为例,说明API = 话语权 谁拥用接口的制定权,谁就掌握控制点,就能获得较大的话语权 从API看控制力量的强弱等级 把控制力传播出去 Part-4: 亲自<敏捷+架构>、并迭代出代码
4.1 情境范例:”手机访问TV/STB” 愿景:多屏互动、幸福家庭的实践 亮点:许多智能设备大量进入家庭,在家里的Android TV建立一朵私密云,来整合窗外多个云平台和手机移动终端,变得流行起来。 情境:手机远距访问TV,透过TV打开家中的壁灯开关 架构:基于<手机+TV>的大小机相联、大小屏幕互动的新架构 设计:设计TV里的框架<E&I>、撰写插件<T> 技术: 在外的家庭成员透过手机浏览器(Browser)上网访问家庭云,您可以在家庭云里,安装一个i-Jetty网页容器(Web Container) 此时,I-Jetty里的HttpServlet就是另一个<E>,而它的doGet()等函数就是<I> 您写的servlet代码就是I-Jetty的<T>,它接受手机的访问 4.2 实际开发:依循敏捷、落实为代码
<架构设计>阶段的敏捷迭代 Step-0. 准备测试计划 订定此阶段的测试方案(Test Case) 以Android手机Browser为测试方案的执行软件 Step-1. 设计敏捷过程的起点架构:Simple Solution 通信协议:手机与TV采HTTP通信 软件接口:TV端的EIT造形与手机端Browser对接 设计:以UML表达EIT造形 代码:赚写I-Jetty的Servlet来实践EIT造形 Step-2. 启动TDD机制、进行迭代 从手机来实机检测TV里的EIT造形的接口代码 依循TDD的反馈,迭代Step-1和Step-2的活动 <代码开发>阶段的敏捷迭代 Step-3. 准备测试计划 订定此阶段的测试方案:基于用户需求(Requirements) 以Android手机Browser为测试方案的执行软件 Step-4. 以上阶段Step-2产出的EIT造形为起点架构 Step-5. 依循测试方案,展开细节设计和代码开发 撰写Android App代码:基于Android应用框架 I-Jetty的<T>调用Android的App App透过JNI调用Android的Zigbee驱动代码 Zigbee驱动透过Dongle发信号给壁灯开关 Step-6. 启动TDD机制、进行迭代 从手机来实机检测TV里的有关代码 依循TDD的反馈,迭代Step-5和Step-6的活动,直到完成 4.3 继续敏捷迭代、开发新功能
新功能1:手机控制TV里的Camera拍照片 TV/STB内的i-Jetty含有servlet代码,让手机可以远距来访问它 TV/STB则内含Camera驱动,能控制摄像头硬件 运用EIT造形和敏捷迭代,开发软件来整合家外的手机与TV/STB上的摄像头硬件,让家庭成员随时从手机来打开TV/STB的摄像头,拍了照片送回到手机上呈现出来 展开敏捷过程,直到完成 新功能2:手机控制TV将照片送上云端(Cloud) TV/STB将Camera拍摄的照片送上云端:例如Google的GAE等 基于WiFi通信协议 展开敏捷过程,直到完成 Part-5: 架构设计应用:支持跨平台
5.1 三个架构设计策略 三个实施策略: 策略-1:把它”EIT(设计)”了 策略-2:挟天子以令诸侯 策略-3:建立中间件(middleware) 5.2 跨芯片(小)平台:采取<策略-1>
情境A:先有别人的(小)平台,然后才建立我的平台 小平台是指别人的平台,该平台的变化决定于别人 为了跨平台,就不宜直接使用别人的平台 您设计<E&I>,而且设计<T>来包容别人平台的变化,这就称为:把它”EIT(设计)”了。 情境B:先建立我的平台,然后才让别人来扩充(Extend) 这反过来,让别人设计插件<T>来扩充(extend)您的<E&I> 别人为了保护他自己,也会将插件分成两部分:<壁虎尾巴>与<壁虎身体> 万一您的<E&I>有变化时,这只壁虎(插件)便能弃尾求生,让<壁虎身体>跨您的<E&I> 5.3 Android版本(大)平台:采取<策略-2> Android升级和版本变更频繁,终端必须随之而更新 Android是一个多层级<E&I>结构,各层都是由Google所开发,Google是强龙,位居天子角色,其设计<I>来控制您的插件<T> 您可以拿EIT造形搭配Proxy-Stub设计模式,规划Stub类别(曹操类),制定自己的<I>,让<T>脱离Android的<E&I>所牵制;实现”挟天子以令诸侯”的效果 5.4 跨自己的平台(建立中间件):采取<策略-3> 随着您的公司业务成长,您的平台版本变更频繁;如何包容自己平台的变化呢? 您可以规划一个上层平台<E&I>来吸纳自己平台的变化 此平台又称为中间件,其提供稳定的<I>(又称API),也保护自己平台的变动自由度,实现”没钱就改版,改版就有钱”的效果 中间件还能提供您的专有API,来凸显自己平台的独特性 Part-6: 架构设计的成功案例分享
6.1 案例:重构PhoneGap的架构和代码 议题:PhoneGap目前只搭配HTML5的Web App 如何重构PhoneGap的架构和代码 让PhoneGap也能搭配一般的Native App 现况:目前PhoneGap的架构设计 HTML5 & PhoneGap可以让UI更容易跨平台 其依赖Browser和PhoneGap的插件<T>来吸收平台的差异化 如果插件很多时,PhoneGap里的PluginManager负责管理之 UI事件是从WebView传送到PhoneGap的插件<T> 目标 即使不采用HTML5,也能使用PhoneGap来管里插件 一旦不使用HTML5,PhoneGap就不再搭配WebView 于是,PhoneGap转而搭配一般的View,如Button等 UI事件(Event)改从一般的传送到PhoneGap的插件<T> 收获 如何拦截App的启动事件(onCreate事件)和UI事件 以EIT造形加快理解PhoneGap框架的结构 深刻领悟<I>的设计要领:如IPlugin接口设计 熟悉从<重构设计>到<重构代码>的过程 6.2 重构的设计思考 重构范围内共有3个EIT造形的美妙组合 第1个造形:{ Activity-DroidGap } 第2个造形:{ WebView-CodavaWebView } 第3个造形:{ PluginManager-Plugin-<T>} 熟悉从<重构设计>到<重构代码>的过程 因为不再搭配WebView,所以前两个EIT造形都必须重构 第3个造形最复杂 上上策是:不重构第3个造形,其内涵和接口代码都保持不变 成功地让第3个造形跨到重构的新平台(即前两个造形) 6.3 案例的成功关键和启示 关键:在于上述的设计思考 洞悉:心怀EIT造形去观察架构 技巧:从<I>观察重构的变动震幅,找出上上之策 启示:优越架构,带来易于重构的机会,创造了系统未来性
Ⅳ 在androidTV开发中,有关于verticalGridVeiw嵌套使用求助
Android TV app开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。机顶盒应用不同于手机应用,因为多数是没有触摸屏的,只能靠遥控器,所以要保持一个焦点的位置,让用户知道当前操作作用的对象。 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果。 边缘移动时,会出现焦点丢失的状况。 有时想直接定位到某个位置上。
android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦点
android:focusable:设置一个控件能否获得焦点
android:background:设置在作为背景的drawable
android:nextFocusDown:定义下一个获得焦点的控件当按下键时
android:nextFocusUp:定义下一个获得焦点的控件当按上键时
android:nextFocusLeft:定义下一个获得焦点的控件当按左键时
android:nextFocusRight:定义下一个获得焦点的控件当按右键时
<requestFocus/>:强制设置一个焦点到指定的view或它的一个子类,前提是android:focusable为true能够获得焦点
Ⅵ 普通电视盒子能装奈飞吗
普通电视盒子,例如小米电视盒子,或者说小米电视,这些国内版的安卓系统和盒子,想要看YouTube和Netflix,好像还挺不容易的,都很难找到破解root的资源,而且就算找到了,破解操作还不是普通人可以做得了的,还有就算你能安装上AndroidTV和google框架,也是只能看Youtube和Netflix的普清,硬件不支持4K高清。
Ⅶ android tv 是aosp吗
Android手机是需要JAVA虚拟机的
Ⅷ android tv 开发需要什么基础
Android TV app开发与一般Android开发最大的区别在于焦点控制 , 用户在使用Android TV设备主要是通过遥控器操作app。机顶盒应用不同于手机应用,因为多数是没有触摸屏的,只能靠遥控器,所以要保持一个焦点的位置,让用户知道当前操作作用的对象. 然而一些app,依据系统对focus的判断,会出现的状况: 上下导航时,不是想要的结果. 边缘移动时,会出现焦点丢失的状况. 有时想直接定位到某个位置上.
android提供了一些焦点相关的属性,在现有的框架层下通过设置View的属性来获得焦点
android:focusable:设置一个控件能否获得焦点
android:background:设置在作为背景的drawable
android:nextFocusDown:定义下一个获得焦点的控件当按下键时
android:nextFocusUp:定义下一个获得焦点的控件当按上键时
android:nextFocusLeft:定义下一个获得焦点的控件当按左键时
android:nextFocusRight:定义下一个获得焦点的控件当按右键时
<requestFocus/>:强制设置一个焦点到指定的view或它的一个子类,前提是android:focusable为true能够获得焦点