首页 APP开发 正文

国内常用app开发框架(国内常用app开发框架)

APP开发 1767
本篇文章给大家谈谈国内常用app开发框架,以及国内常用app开发框架对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、常用的android开发框架有哪些

本篇文章给大家谈谈国内常用app开发框架,以及国内常用app开发框架对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

常用的android开发框架有哪些

主要分为以下几种:

1、volley

项目地址

(1) JSON,图像等的异步下载;

(2) 网络请求的排序(scheduling)

(3) 网络请求的优先级处理

(4) 缓存

(5) 多级别取消请求

(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

2、Android-async-http

项目地址:

文档介绍:

(1) 在匿名回调中处理请求结果

(2) 在UI线程外进行http请求

(3) 文件断点上传

(4) 智能重试

(5) 默认gzip压缩

(6) 支持解析成Json格式

(7) 可将Cookies持久化到SharedPreferences

3、Afinal框架

项目地址:

主要有四大模块:

(1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。

(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

(3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。

(4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法,

没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),

更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器,

在imageview显示图片的时候播放动画等(默认是渐变动画显示)。

4、xUtils框架

项目地址:

主要有四大模块:

(1) 数据库模块:android中的orm框架,一行代码就可以进行增删改查;

支持事务,默认关闭;

可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);

支持绑定外键,保存实体时外键关联实体自动保存或更新;

自动加载外键关联实体,支持延时加载;

支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。

(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;

新的事件绑定方式,使用混淆工具混淆后仍可正常工作;

目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。

(3) 网络模块:支持同步,异步方式的请求;

支持大文件上传,上传大文件不会oom;

支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;

下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;

返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。

(4) 图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;

支持加载网络图片和本地图片;

内存管理使用lru算法,更好的管理bitmap内存;

可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

5、ThinkAndroid

项目地址:

主要有以下模块:

(1) MVC模块:实现视图与模型的分离。

(2) ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。

(3) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。

(4) http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。

(5) 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置

(6) 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

(7) 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。

(8) 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印

(9) 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。

(10) 网络状态检测模块:当网络状态改变时,对其进行检

6、LoonAndroid

项目地址:

主要有以下模块:

(1) 自动注入框架(只需要继承框架内的application既可)

(2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)

(3) 网络请求模块(继承了基本上现在所有的http请求)

(4) eventbus(集成一个开源的框架)

(5) 验证框架(集成开源框架)

(6) json解析(支持解析成集合或者对象)

(7) 数据库(不知道是哪位写的 忘记了)

(8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)

(9) 自动更新模块

(10) 一系列工具类

7、KJFrameForAndroid

项目地址:

github项目地址:

备用项目地址:

KJFrameForAndroid 又叫KJLibrary,是一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架,使其更加简单易用;

KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发,最终实现快速而又安全的开发APP。我们提倡用最少的代码,完成最多的操作,用最高的效率,完成最复杂的功能。

同时,KJFrameForAndroid是免费的、开源的、简易的、遵循Apache Licence 2.0开源协议发布的android应用开发框架,总共分为五大模 块:UILibrary,UtilsLibrary,HttpLibrary,BitmapLibrary,DBLibrary。

8、AndroidAnnotations

xUtils是国内比较火的快速开发框架,但是它的注解机制不是太稳定而且注解可选也比较少,国外的一个框架主要专注于注解的开发,简化Android代码编写,它除了有依赖注入的特性以外,还集成了Ormlite,Spring-android中的REST模板。使用起来非常方便,大大提高了开发效率。

1.下载AndroidAnnotations:

git官网:

项目中重要的两个jar包分别是:androidannotations-api-3.0.1.jar和androidannotations-3.0.1.jar

2.新建一个android项目,然后将androidannotations-api-3.0.1.jar复制到libs目录下,在项目的根目录新建一个文件夹,命名为compile-libs,然后将androidannotations-3.0.1.jar复制到该目录下

3.在你的工程上右键单击,在弹出的菜单中选择"Properties",找到Java Compiler,确保Compiler compliance level设置为1.6,否则的话处理器将不起作用

4.然后设置项目属性:右键-Properties-Java Compiler-Annotation Processing 在该页面选中Enable project specific settings。

5.转到Java Compiler 中的 Annotation Processing 下边的 Factory Path,在此将androidannotations-3.0.1.jar添加到其中。

注解1:@ViewById 与findViewById功能相似,如果ViewById后没有设置资源ID的话,就是自动查找与变量名称相同的id资源。

注解2:@Click 点击事件处理的注解。

注解3:@UiThread 后台Ui线程的注解,省去了Handler等等。

注解4:@EActivity 提示Activity的注解,注意,该注解将Activity编译成Activity_,注意,多一个下划线“_”,因此在AndroidManifest.xml文件中需要将其添加下滑线

注解5:@AfterViews 是指View类注入完毕之后执行的代码。

app开发都会用到什么框架

国内几个集成类型的框架大致看过,适合入门级别或者对App要求不是很严格的开发者。

如果对App的性能、包size有要求。对代码有洁癖,不想使用一个功能就引入一个大坨jar包。

或者想专注学习某一个模块或方向,那么推荐你使用Lite的类库。

以下是lite站点已列出的一些特点

1. 专一,每个库只做一件事情,并且只有核心相关的代码,这使得框架库体积非常小。

2. 简单,不需要三方依赖或辅助,API使用简单。

3. 性能不错,作者每个环节经过测试对比,来选出更好的模式和做法。

4. 依赖抽象,开发者可以自由的替换实现,来拓展功能。

5. 约定优于配置,这个无需多说了,省掉多余描述,更好地做事情。

图片加载,UIL或者Picasso;

数据库,ormLite或者greenDao;

网络层,apcahe的http-common或者square的okhttp;

聊天,XMPP;

JSON解析,fastJson;

动画,NineOldAndroids。

目前有什么好用的开发 html5 app 的框架

jquery mobile和bootstrap都是较好的框架

jQuery Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动Web网站。

Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。

现在主流的web app框架有哪些

现在主流的WEB APP开发框架有哪些?Web app框架是一种基于浏览器载体的框架,包含前端、后端和数据库三个大的方向,各个方向的工具技术都不一样。现在主流的工具技术包含.NET、SqlServer、Bootstrap等,开发工具也会不一样。

web APP开发框架和工具详解

Web APP前端开发技术框架包括三个要素:HTML、CSS和JavaScript,当然还有很多高级的前端框架,比如bootstrap、Jquery等。

Web APP后端技术框架也有很多,比如.Net、JAVA、PHP等,各大语言都有其开发架构和工具,像.NET的MVC架构和Visual Studio工具,JAVA的J2EE架构和Eclipse工具。

数据库现在有三种主流的关系型数据库:Mysql\SQLserver\Oracle,还有Nosql非关系型数据库:Redis、Mogodb等。开发工具有SQL Server Management Studio、Navicat等。

android app开发中常用到哪些开源框架

在前面的课程中,随着对Android体系的了解,已经可以进行正常的Android应用开发了。在Android开发中,同其他工程开发一样,也经常使用一些提高效率的框架,本文我们做一个对比。这些框架,既包括:网络请求框架、也包括图片加载库框架、还包括数据库操作等一些框架,总之,了解和熟悉这些框架,会对自己的开发效率有很大的提升和帮助。

网络请求框架

1、okHttp

在前文的学习中,我们已经了解过okHttp,是一个常用的网络加载库。

2、Retrofit

介绍

Retrofit是一个很不错的网络请求库,该库是square开源的另外一个库,之前的okhttp也是该公司开源的。

Retrofit是基于OkHttp封装的RESTful网络请求框架,使用注解的方式配置请求。优点是速度快,使用注解,callback函数返回结果自动包装成Java对象。官方自己的介绍说:

A type-safe REST client for Android and Java

该网络框架在github上的地址如下:

要求

Retrofit支持的http方式方式包括 GET/POST/PUT/DELETE/HEAD/PATCH,Retrofit要求Java的版本是1.8+,Android应用的API版本应该在21+。

依赖

使用Retrofit库,和其他库一样,首先需要设置依赖,依然是在build.gradle文件中设置依赖:

//添加retrofit库依赖

implementation ‘com.squareup.retrofit2:retrofit:2.1.0’

//添加gson转换器

implementation ‘com.squareup.retrofit2:converter-gson:2.1.0’

使用

通过一个例子,我们可以来演示该框架的使用步骤:

1、定义请求接口,即程序中都需要什么请求操作

public interface HttpServices {

/**

获取头条新闻

@param type 新闻类型

@param key apiKey

@return

*/

@GET(“toutiao/index”)

Call getNewsList(@Query(“type”) String type, @Query(“key”) String key);

}

2、实例化Retrofit对象,使用的Builder的模式创建,如下代码所示:

Retrofit retrofit = new Retrofit.Builder()

.baseUrl(Constants.BASE_API)

.addConverterFactory(GsonConverterFactory.create())

.build();

注意,这里设置结构体转换器,是可以直接把网络请求回来的数据转换为Java结构体,这里设置的Gson解析器,因此要引入相应的转换器支持库。

3、得到接口对象,自己创建的全局的接口对象,并调用相应的接口,得到一个类似于请求Call对象。如下所示:

HttpServices httpServices = retrofit.create(HttpServices.class);

Call newsListCall = httpServices.getNewsList(“top”, Constants.API_KEY);

4、加入到请求队列中,并设置回调方法:

newsListCall.enqueue(new Callback() {

@Override

public void onResponse(Call call, Response response) {

//网络请求成功的回调方法

List list = Arrays.asList(response.body().result.data);

Log.i(“TAG”, “请求成功:” + String.valueOf(list.size()));

NewListAdapter adapter = new NewListAdapter(RetrofitActivity.this);

adapter.setmData(list);

mRecyclerView.setAdapter(adapter);

}

@Override

public void onFailure(Call call, Throwable throwable) {

//网络请求失败的回调方法

Log.i(“TAG”, “请求失败:” + throwable.getMessage());

}

});

其他界面操作和之前的Android中的内容一致。

3、RxJava

简单来说,用来处理事件和异步任务,在很多语言上都有实现,RxJava是Rx在Java上的实现。

原理

RxJava最基本的原理是基于观察者模式来实现的。通过Obserable和Observer的机制,实现所谓响应式的编程体验。

特点

RxJava在编程中的实现就是一种链式调用,做了哪些操作,谁在前谁在后非常直观,逻辑清晰,代码维护起来非常轻松。

RxJava也是一个在github上的库,github地址如下:

基于此,还有一个RxAndroid,github地址如下:

RxJava和RxAndroid的关系

RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发。

基本概念

RxJava 有四个基本概念:

Observable:可观察者,即被观察者Observer:观察者subscribe:订阅事件

这四个概念之间的逻辑关系是:Observable和Observer通过subscribe方法实现订阅关系,从而Observable可以在需要的时候发出事件来通知Observer。

事件

RxJava 的事件回调方法主要包含以下几个:

onNext:普通的事件onCompleted:事件队列完结。RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。RxJava 规定,当不会再有新的 onNext 发出时,需要触发 onCompleted 方法作为标志。:事件队列异常。在事件处理过程中出异常时, 会被触发,同时队列自动终止,不再允许再有事件发出。在一个正确运行的事件序列中, onCompleted和 有且只有一个,并且是事件序列中的最后一个。需要注意的是,onCompleted() 和 () 二者也是互斥的,即在队列中调用了其中一个,就不应该再调用另一个。

数据库操作框架

在开发时,本地数据库可以起到缓存数据和存储业务数据的作用,随着技术的成熟,不断推出了有很多关于数据库的操作框架。比较常见的数据库操作框架有诸如:GreenDao,OrmLite 和 ActiveAndroid,DBFlow等。

GreenDAO

GreenDAO是一个开源的 Android ORM(“对象/关系映射”),通过 ORM(称为“对象/关系映射”),在我们数据库开发过程中节省了开发时间!

GreenDao的官方文档地址如下:

GreenDao的作用

通过 GreenDao,我们可以更快速的操作数据库,我们可以使用简单的面相对象的API来存储,更新,删除和查询 Java 对象。这款数据库操作框架的特点是:

高性能,在官方的统计数据中,GreenDao在GreenDao,OrmLite 和 ActiveAndroid三个框架中,读、写、更新操作效率均表现第一。易于使用的强大 API,涵盖关系和连接。内存消耗较小。安全:greenDAO 支持 SQLCipher,以确保用户的数据安全;

核心概念

GreenDao 的核心类有三个:分别是:

DaoMaster:保存数据库对象(SQLiteDatabase)并管理特定模式的 DAO 类(而不是对象)。它有静态方法来创建表或删除它们。它的内部类 OpenHelper 和DevOpenHelper 是 SQLiteOpenHelper 实现,它们在 SQLite 数据库中创建模式。DaoSession:管理特定模式的所有可用 DAO 对象,您可以使用其中一个getter方法获取该对象。DaoSession 还提供了一些通用的持久性方法,如实体的插入,加载,更新,刷新和删除。XXXDao:数据访问对象(DAO)持久存在并查询实体。对于每个实体,greenDAO 生成DAO。它具有比 DaoSession 更多的持久性方法。Entities:可持久化对象。通常, 实体对象代表一个数据库行使用标准 Java 属性(如一个POJO 或 JavaBean )。

使用

按照官方的文档和github上的说明可以实现greendao的使用。

首先进行的是依赖,对于greenDao,有两个地方需要设置,分别是项目根目录中的 build.gradle,还有module中的build.gradle。

classpath ‘org.greenrobot:greendao-gradle-plugin:3.3.0’ // add plugin

在项目根目录中的build.gradle目录中写这句话的意思是添加greenDao的插件。

在项目module中的build.gradle中也需要进行配置,有两个地方需要设置,如下图所示:

apply plugin: ‘org.greenrobot.greendao’ //开头加入该代码

dependences{

implementation ‘org.greenrobot:greendao:3.2.0’

}

然后就可以使用了。

bean实体

可以在项目中创建自己业务需要的实体类,并通过注解来设置是实体类,字段约束等内容。然后点击Android Studio中的Make module,即可自动生成XXXDao代码,以此来方便开发者的操作。生成的XXXDao类,不可修改和编辑,是自动生成的。

ORMLite

ORMLite框架是另外一款Android开发中可以使用的数据库操作框架。该框架的文档地址如下:

该框架的文档准备的不是特别友好,此处不再赘述。

总结,所有的框架原理几乎都相差不大,只是操作有所差异。

视图注入框架

在Android项目开发过程中,有太多的页面需要布局完成,同时在代码中需要些大量的findviewbyid的操作,来实现控件的解析。于是就有人想能否轻松一些,解放双手节省时间,干一些其他有意义的事情,于是ButterKnife就来了。

ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成。

该项目在github上的地址如下:

这个框架的优势也非常明显:

强大的View绑定和Click事件处理功能,简化代码,提升开发效率方便的处理Adapter里的ViewHolder绑定问题运行时不会影响APP效率,使用配置方便代码清晰,可读性强

使用

首先是设置依赖,在build.gradle中进行依赖设置:

implementation ‘com.jakewharton:butterknife:10.2.1’

annotationProcessor ‘com.jakewharton:butterknife-compiler:10.2.1’

需要注意,该框架要求Java环境1.8版本以上,SDK版本在26以上,因此在使用到的module中的build.graldle文件中,还必须添加如下代码配置:

apply plugin: ‘com.jakewharton.butterknife’

android{

//…

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8

}

//…

}

另外,还必须在项目根目录中的build.gradle文件中,添加该框架的插件,如下图所示:

dependences{

classpath ‘com.jakewharton:butterknife-gradle-plugin:10.2.1’

}

然后即可在代码中进行使用了。

在使用该框架的页面进行绑定诸如,如下所示代码:

ButterKnife.bind( this) ;

主要的功能

@BindView():控件id 注解,解放双手,不用再每个控件都写一遍findviewById@BindViews():多个控件id 的注解,括号内使用花括号包括多个id即可,中间用,分割开在Fragment中使用,绑定Fragment。@BindString():绑定字符串@BindArray:绑定数组@BindBitmap:绑定bitmap资源@OnClick、@OnLongClick:绑定点击事件和长按事件…还有很多

插件安装

如果是页面很复杂,一个一个写BindView也很费劲,在Android Studio中,可以安装一个ButterKnife的插件,安装该插件后,可以在Studio中直接将对应的布局中的所有控件均给自动生成。

注意,在进行自动生成时,鼠标要放在布局文件上。

注意事项

ButterKnife框架在使用时,要求的版本比较高,包括Java的版本也有限制。因此,如果计划在项目中使用,要提前做好预备工作,以防止对已有项目和业务带来不必要的麻烦,反而影响工作进度。

关于国内常用app开发框架和国内常用app开发框架的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

扫码二维码