android更新框架
① android热更新框架哪个好
一.基础知识
1.阿里的热更新框架已经开源 了。但已经很久没有更新过新版本了。当前的版本只支持到了 Android 4.4。由于 5.0 起新的 ART 虚拟机、更严格的 SELinux 策略以及对 64 位的支持之类的事,使得 Xposed 都在开发上做了很多调整。我不知道 Dexposed 现在是否支持,但至少阿里没有开源。
2.在本地动态执行远端下发的代码是极度危险的行为。利用此方法执行非法代码等或用于绕过 Google Play 等市场的审查是违反相关协议的,也是对用户极度不负责任的行为。
3.在一些访问非常密集的地方使用热更新可能会对效率产生相对比较大的影响,应该避免使用.
4.我们可以对 java 的 ScriptEngine 进行一些封装成为一个 HotPatch 类使得它更适合做热更新的工作。
5.首先,检查热更新补丁的管道一定要建立在 https 上,因为下发代码是极其危险的,如果被劫持,后果是无法想象的。其次,请求时最好自动带上 Android 版本、手机型号、地区、版本号等信息,以方便更精确地下发,千万不能下发错。
6.Java在运行时加载对应的类是通过ClassLoader来实现的,ClassLoader本身是一个抽象来,Android中使用PathClassLoader类作为Android的默认的类加载器
7.我们的如果想做hotpatch,一定要保证我们的hotpacth dex文件出现在dexElements列表的前面。
二.常用的热更新技术框架:
基于QQ空间的HotFix →→ 要使用到android dex分包方案→拆分dex的项目的话,可以参考一下谷歌的multidex方案实现.
大众点评的NuWa←项目补丁自动化做的很完整
alibaba/AndFix
阿里巴巴的DexPosed
dalvik_patch实现multidex
使用React-Native实现app热部署的一次实践
alibaba/AndFix
三、常用的热更新技术框架比较
Advantage
disadavantage
NuWa
1,可以新增类和字段,
2,兼容到6.0系统
1,基本原理是classloader,类加载器
2,不能修改资源文件,如图片布局等(可通过动态布局实现)
AndFix
1, 支持Android2.3到6.0版本
2, 支持arm与x86系统架构
3, 支持dalvik和ART的runtime
4, 不需要重启App即可应用补丁
1,不能新增类和字段,
2,不能修改资源文件,
3,不能修改manifest文件
4,不能新增成员变量
5,不能使用加固后的apk制作pacth文件
四、github地址
网络的同学的实现 HotFix
点评的同学的实现 Nuwa
阿里的同学的实现 AndFix
另:AndFix对static的支持不太好,下面是试验的Demo:
添加了一个静态的字段addString:
通过AndFix来制作patch会直接报错:
② android开发框架有哪些
1、Rajawali
介绍:
安卓的OpenGL ES 2.0/3.0 引擎。可以用于制作普通应用或者动态壁纸,当然也可以用于制作游戏。
项目地址: https://github.com/Rajawali/Rajawali
2、RxAndroid
介绍:
RxAndroid是RxJava的一个针对Android平台的扩展。它包含了一些能够简化Android开发的工具。
项目地址: https://github.com/ReactiveX/RxAndroid
3、Paginize
介绍:
Paginize 是一个轻量级的UI框架,使用注解来注入布局和view,除了使用注解之外,该框架还有两个特色:1.用Page的概念来取代Fragment,2.切换page时自带ios风格的动画效果。
项目地址: https://github.com/neevek/Paginize
4、otto
介绍:
Otto 是square公司出的一个事件库(pub/sub模式),用来简化应用程序组件之间的通讯。 Otto 修改自Google的Guava库,专门为Android平台进行了优化。
项目地址: https://github.com/square/otto
5 、rebound
介绍:
rebound是facebook的开源动画库。可以认为这个动画库是独立于android Framework之外的一种动画实现。
项目地址: https://github.com/facebook/rebound
6、KJFrameForAndroid
介绍:
KJFrameForAndroid 又叫KJLibrary,是一个帮助快速开发的框架。使用KJFrameForAndroid,你可以只用一行代码就完成http请求、网络图片加载、数据库数据保存或读取。
项目地址: https://github.com/kymjs/KJFrameForAndroid
7、xUtils
介绍:
xUtils
包含了很多实用的android工具。 xUtils
支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls
最低兼容android 2.2 (api level 8)
项目地址: https://github.com/wyouflf/xUtils
目前xUtils主要有四大模块:
DbUtils模块:
android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
ViewUtils模块:
android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
HttpUtils模块:
支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
BitmapUtils模块:
加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
8、butterknife-view
注入工具
介绍:
为了减少频繁的调用findViewById(R.id...),可以采用一些注入框架,可以简化自己的代码,让你更专注于实际的功能开发,butterknife就是这样的一个框架,他是jakewharton大神的作品,值得一试。
class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}
这是博客地址:
http://jakewharton.github.io/butterknife/
项目地址: https://github.com/JakeWharton/butterknife
9、cube-sdk
一淘推出的开发框架
介绍:
cube一个Android开发包, 可极大提高你的开发效率。主要提供了图片加载以及网络请求方面的api功能。
项目地址: https://github.com/etao-open-source/cube-sdk
他们的网站:http://cube-sdk.liaohuqiu.net/cn/
10、ASimpleCache
一个简单的缓存框架
介绍:
ASimpleCache
是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。
它可以缓存什么东西?普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和
byte数据。
项目地址: https://github.com/yangfuhai/ASimpleCache
11、androidannotations
介绍:
AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。
使代码更加精简,使项目更加容易维护,它的目标就是“Fast Android Development.Easy maintainance”。
通过一段时间的使用发现,相比原生的Android开发,确实能够让你少些很多代码
项目地址: https://github.com/excilys/androidannotations
12、Event Bus
解耦android模块
介绍:
当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。如何优雅地解决这个问题?这时候,就需要使用到EventBus。
EventBus是GreenRobot出品的Android系统的一个Event
Bus类库,使用起来和之前我们所介绍的Square的Otto差不多,都是用来简化应用组件之间的通信。
项目地址: https://github.com/greenrobot/EventBus
13、BeeFramework_Android
介绍:
BeeFramework
Android版主要为Android初级开发人员提供一个基于MVC开发模式的APP DEMO,并提供一套APP内调试工具,包括
查看网络数据请求历史 Crash Log列表 真机WIFI环境下模拟2G\3G网络 查看APP性能(内存占用,CPU占用等)
项目地址: https://github.com/BeeFramework/BeeFramework_Android
14、afinal
介绍:
Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。
Afinal里面目前包含了四大组件:
FinalHttp:用于请求http数据,直接ajax方式请求,文件上传, 断点续传下载文件等
FinalBitmap:用于显示bitmap图片,而无需考虑线程并发和oom等问题。
FinalActivity:完全可以通过注解方式绑定控件和事件,无需编写代码。
FinalDb:android中sqlite的orm框架,一行代码搞定增删改查。
Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。
项目地址: https://github.com/yangfuhai/afinal
15、Volley
介绍:
在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google
I/O 2013上,Volley发布了。Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
项目地址: https://github.com/mcxiaoke/android-volley
③ 请问安卓10系统怎么更新google服务框架
国产手机大概率是不能更新的,因为很容易报错。如果可以更新,那就是真正的幸运儿。
④ 移动服务框架怎么更新
1. 稳妥的进击:使用 Recovery 刷入
如果你已刷入第三方 Recovery,那么这种方法式最值得尝试的。下载 GMS 组件(下载时请根据自己设备所搭载的 Android 系统版本选择对应的 GMS 组件包),将 GMS 包放至在SD卡根目录,无需解压,手机关机。然后同时按住音量加与和电源键10秒进入 Recovery。部分机型进入 Recovery 的方式可能会有所出入,建议在操作前请先到对应的机型论坛查看相关的教程。
进入 Recovery,音量键为上下移动光标,电源键为确认操作。点按音量键,将光标移到到“install zip”,点击电源键确认,选择“ choose zip from /sdcard ”,进入SD卡文件目录,找到刚才放至在根目录的 GMS 包,点击直接选择 YES 即可!整个操作与刷机没啥区别,只是少了清除数据的步骤而已。因此,在刷入 GMS 组件后,原有的数据并不会受到丝毫影响!
google服务框架怎么安装
google服务框架怎么安装
这种方法最为稳健,既不会丢失用户数据,而且GMS组件的出错几率很低。缺点在与操作门槛较高,并不是所有人的Android 设备都已刷上第三方的Recovery。
2. 便捷的冒险:傻瓜式一键刷入
如果你是普通玩家,不知道 Recovery 为何物,那么傻瓜式的工具最为适合你。 本文以刷机精灵为例,确保你的驱动成功安装与USB调试的开启。
将手机连接电脑,打开刷机精灵,刷机精灵会自动识别你的手机。然后点击 实用工具——Google服务包,(本操作需要你的Android 设备已获得ROOT权限),然后不断“下一步”即可!随后,手机会自动重启。至此,操作完毕!
google服务框架怎么安装
傻瓜式的操作,省去了下载 GMS 组件、进入Recovery手动输入等麻烦步骤。只需一次点击,即可自动完成下载、刷入、重启等一条龙服务。然而,风险总是伴随着便捷而至。通过这些傻瓜式一键刷入 GMS 组件的应用,在日后的使用中会难免会遇到程序报错等问题。
⑤ 如何构建Android MVVM 应用框架
Databinding 是一种框架,MVVM是一种模式,两者的概念是不一样的。我的理解DataBinding是一个实现数据和UI绑定的框架,只是一个实现MVVM模式的工具。ViewModel和View可以通过DataBinding来实现单向绑定和双向绑定,这套UI和数据之间的动态监听和动态更新的框架Google已经帮我们做好了。在MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding 使我们构建Android MVVM 应用程序成为可能。
之前看了很多关于DataBinding的博客和相关的一些Demo,大多数就是往xml布局文件传入一些数据,然后把这些数据绑定到控件上( 如TextView binding:text=“@{user.name} ),接着在这些控件上(如Button binding:setOnClickListener=”@{user.listener}”) 设置一些事件到控件上,基本讲述都是DataBinding的基本用法。但是并没有人告诉你把一个onClickListener 写到一个类并把这个listener绑定到xml里面上是不是不太好,也没有人告诉你这个和xml布局绑定的ViewModel类应该放哪些数据,应该做什么事?应该如何设计?更是很少有博文来告诉你在Android 中如何通过Data Binding 去构建MVVM 的应用框架。这也就是是本篇文章的重点。接下来,我们先来看看什么是MVVM,然后在一步一步来设计整个应用程序框架。
源码地址 https://github.com/Kelin-Hong/MVVMLigh
⑥ Android中安装的Google服务框架需要更新/升级吗
有些比较新的app 会提示你升级google服务框架,不过一般都是google自家app。
⑦ android中的常用框架有哪些
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显示图片的时候播放动画等(默认是渐变动画显示)。
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内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
⑧ 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上的地址如下:https://square.github.io/retrofit/
要求
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上的库,githubhttp://www.xingkongmj.com/news/id/62.html地址如下:https://github.com/ReactiveX/RxJava
基于此,还有一个RxAndroid,github地址如下:https://github.com/ReactiveX/RxAndroid
RxJava和RxAndroid的关系
RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发。
基本概念
RxJava 有四个基本概念:
Observable:可观察者,即被观察者Observer:观察者subscribe:订阅事件
这四个概念之间的逻辑关系是:Observable和Observer通过subscribe方法实现订阅关系,从而Observable可以在需要的时候发出事件来通知Observer。
事件
RxJava 的事件回调方法主要包含以下几个:
onNext:普通的事件onCompletedhttp://dachang.net/432717.html:事件队列完结。RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。RxJava 规定,当不会再有新的 onNext 发出时,需要触发 onCompleted 方法作为标志。:事件队列异常。在事件处理过程中出异常时, 会被触发,同时队列自动终止,不再允许再有事件发出。在一个正确运行的事件序列中, onCompleted和 有且只有一个,并且是事件序列中的最后一个。需要注意的是,onCompleted() 和 () 二者也是互斥的,即在队列中调用了其中一个,就不应该再调用另一个。
数据库操作框架
在开发时,本地数据库可以起到缓存数据和存储业务数据的作用,随着技术的成熟,不断推出了有很多关于数据库的操作框架。比较常见的数据库操作框架有诸如:GreenDao,OrmLite 和 ActiveAndroid,DBFlow等。
GreenDAO
GreenDAO是一个开源的 Android ORM(“对象/关系映射”),通过 ORM(称为“对象/关系映射”),在我们数据库开发过程中节省了开发时间!
GreenDao的官方文档地址如下:http://www.xingkongmj.com/news/id/63.html
GreenDao的作用
通过 GreenDao,我们可以更快速的操作数据库,我们可以使用简单的面相对象的API来存储,更新,删除和查询 Java 对象。这款数据库操作框架的特点是:
高性能,在官方的统计数据中,GreenDao在GreenDao,OrmLite 和 ActiveAndroid三个框架中,读、写、更新操作效率均表现第一。易于使用的强大 API,涵盖关系和连接。内存消耗较小。安全:greenDAO 支持 SQLCipherhttp://www.xingkongmj.com/news/id/64.html,以确保用户的数据安全;
核心概念
GreenDao 的核心类有三个:分别是:
DaoMaster:保存数据库对象(SQLiteDatabase)并管理特定模式的 DAO 类(而不是对象)。它有静态方法来创建表或删除它们。它的内部类 OpenHelper 和DevOpenHelper 是 SQLiteOpenHelper 实现,它们在 SQLite 数据库中创建模式。DaoSession:管理特定模式的所有可用 DAO 对象,您可以使用其中一个getter方法获取该对象。DaoSession 还提供了一些通用的持久性方法,如实体的插入,加载,更新,刷新和删除。XXXDao:数据访问对象(DAO)持久存在并查询实体。对于每个实体,greenDAO 生成DAO。它具有比 DaoSession 更多的持久性方法。Entities:可持久化对象。通常, 实体对象代表一个数据库行使用标准 Java 属性(如一个POJO 或 JavaBean )。
使用
按照官方的文档和github上的说明可以实现green的使用。
首先进行的是依赖,对于greenDao,有两个地方需要设置,分别是项目根目录中的 build.gradle,还有mole中的build.gradle。
classpath ‘org.greenrobot:green-gradle-plugin:3.3.0’ // add plugin
在项目根目录中的build.gradle目录中写这句话的意思是添加greenDao的插件。
在项目mole中的build.gradle中也需要进行配置,有两个地方需要设置,如下图所示:
apply plugin: ‘org.greenrobot.greenhttp://www.xingkongmj.com/news/id/66.html’ //开头加入该代码
dependences{
implementation ‘org.greenrobot:green:3.2.0’
}
然后就可以使用了。
bean实体
可以在项目中创建自己业务需要的实体类,并通过注解来设置是实体类,字段约束等内容。然后点击Android Studio中的Make mole,即可自动生成XXXDao代码,以此来方便开发者的操作。生成的XXXDao类,不可修改和编辑,是自动生成的。
ORMLite
ORMLite框架是另外一款Android开发中可以使用的数据库操作框架。该框架的文档地址如下:https://ormlite.com/sqlite_java_android_orm.shtml
该框架的文档准备的不是特别友好,此处不再赘述。
总结,所有的框架原理几乎都相差不大,只是操作有所差异。
视图注入框架
在Android项目开发过程中,有太多的页面需要布局完成,同时在代码中需要些大量的findviewbyid的操作,来实现控件的解析。于是就有人想能否轻松一些,解放双手节省时间,干一些其他有意义的事情,于是ButterKnife就来了。
ButterKnife是一个专注于Android系统的View注入框架,可以减少大量的findViewById以及setOnClickListener代码,可视化一键生成。
该项目在github上的地址如下:http://www.xingkongmj.com/news/id/65.html
这个框架的优势也非常明显:
强大的View绑定和Click事件处理功能,简化代码,提升开发效率方便的处理Adapter里的ViewHolder绑定问题运行时不会影响APP效率,使用配置方便代码清晰,可读性强
使用
首先是设置依赖,在build.gradlehttp://dachang.net/432714.html中进行依赖设置:
implementation ‘com.jakewharton:butterknife:10.2.1’
annotationProcessor ‘com.jakewharton:butterknife-compiler:10.2.1’
需要注意,该框架要求Java环境1.8版本以上,SDK版本在26以上,因此在使用到的mole中的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的版本也有限制。因此,如果计划在项目中使用,要提前做好预备工作,以防止对已有项目和业务带来不必要的麻烦,反而影响工作进度。
⑨ 如何使用在Android模拟器Xposed框架
xposed框架是什么意思?xposed框架有什么作用?
xposed框架是一个由xda开发的框架,安装之后,让许多软件在此框架里面运行,比如绿色守护借助这个框架可以获得更多的功能,gravitybox必须在这个框架里面运行,需要root,MIUI禁止使用。
Xposed 就好比是 Google 模块化手机的主体,只是一个框架的存在,在添加其他功能模块(Moles)之前,发挥不了什么作用,但是没了它也不行。也正因为如此,Xposed 具有比较高的可定制化程度。Moto X 用户可定制手机的外观、壁纸、开机动画等,Xposed 则允许用户自选模块对手机功能进行自定义扩充。
Xposed的优点
Xposed 是基于 AOSP 开发的,对源代码改动不大的 ROM 的兼容性较好,这也就使得某一功能可借由 Xposed 移植到不同的 ROM 上。
作为 Android 用户,你可能喜欢现有 ROM 的界面,同时羡慕其他 ROM 的一些特色功能。有了 Xposed,大可不必为了追求某些特色功能而换掉现有 ROM,使 ROM 的美观性与功能性兼备。不过前提是仓库中存在相应的功能模块。
若要使 ROM 恢复原状,只需取消勾选所有模块或停用 Xposed 即可,无需复杂的刷机操作。
安装 Xposed 框架安装器
Xposed 框架需要Android 4.0.3及更高版本才能安装,目前还不支持Android 4.4,以后的版本应该会支持。Xposed 框架也需要有ROOT授权才能安装,安卓的一切高级应用都需要ROOT权限,所以如果你想痛快的玩机,去ROOT吧!
Xposed 框架需要使用安装器进行安装,所以我们需要先安装Xposed 框架安装器,安装完成打开后点击框架(如图中红框位置),进行框架的安装。
安装 Xposed 框架
点击后进入框架安装、升级界面,我们点击“安装/更新”,会出现ROOT授权提示,许可即可。这里小编给大家个提醒,为了Xposed 框架及以后各种模块的良好运行建议使用好的授权管理,目前各种一键root生成的各种授权管理程序可能无法满足Xposed 框架及以后各种模块的需求。建议使用SuperSU Pro。Xposed 框架安装完成后重启手机才能激活,可直接点击重启也可手动重启。
选用模块
我们安装Xposed 框架是为了使用各种模块,而增强手机的各种功能。在Xposed 框架安装器中可以点击“下载”进入模块仓库下载自己需要的模块,不过这里全是英文,可能与小编一样英文不好的朋友用起来有难度。还有个方法就是,直接安装需要的模块后,在Xposed 框架安装器中点击“模块”进入模块界面进行勾选,这里以红色守护的试验性功能为例,勾选后模块就开始发挥作用了。
总结
Xposed 框架安装器可以看成是个Xposed 框架的管理工具,在这里可以安装、更新Xposed 框架,也可以卸载Xposed 框架,查看安装日志。也可设置Xposed 框架安装器是否联网更新框架及模块。
⑩ 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库)等。
