A. 安卓4.0和2.5哪个好
肯定是安卓4.0好啊。安卓4.0在系统上的9大改进:1.新的UI界面更加的人性化相信关注安卓系统的朋友都看过了早些时候网上发布的安卓4.0系统界面。这次看看发布会上的照片吧。2.新的通知系统安卓4.0的通知系统有了很大的改进,用户可以自己决定哪些应用可以发送通知。安卓 4.0的通知系统现在可以直接向侧面滑动删去通知条目,这样的操作也出现在应用管理列表中。3.语音输入系统和面部识别功能Duarte说新系统的键盘在纠错、精度方面有了很大改进。他还演示了语音输入系统,说“smiley face”直接在输入框中插入一个笑脸。4.新的安卓浏览器安卓 4.0的浏览器现在直接支持将完整网页离线保存。比第三方应用更好的是该功能现在与默认浏览器完全集成。实现实时预览功能,单一手势关闭所有浏览器标签,快速访问台式机版网站。能够自动与Chrome浏览器实现数据同步。新浏览器的标签管理界面5.大幅强化了GMailandroid 4.0的Gmail大幅强化,浏览邮件时左右滑动直接切换上一封/下一封邮件。同时增加了离线搜索功能,可访问过去30天内收到的邮件。新的 GMail 界面,完全集成会话模式大幅强化了GMail6.数据使用管理功能Android 4.0集成的数据追踪系统可以追踪、分析移动数据流量,设置移动数据使用上限,它集成于系统内部,功能非常齐全,第三方的数据流量管理工具前途堪忧。每月总是怕流量超过的朋友这回不用担心了流量管理工具的分析界面流量管理工具还能具体查看每个应用产生的流量7.拍照模式的强化安卓4.0所拍照片只需三次点击就能分享到G+、Facebook、Twitter等任意SNS服务,如果国行引入的话肯定会增加人人网,新浪微博等分享。安卓4.0新的照片应用现在可以像Instagram一样加滤镜,并且还能加相框、进行全景拍摄。并且相机可以识别人脸,集成 Zero Shutter 技术,快门反应极快,连拍很快。安卓4.0对于照相的升级拍照界面8.新加入的people应用People应用是通讯录的进化,以联系人照片为核心,界面偏重滑动而非点击。People应用集成了其它通信工具,比如Twitter、Linkedin、Google+,不出意外的话还会支持自己添加第三方服务。people应用与Gmail整合,点击邮件里的头像就能弹出附有大照片的快捷联系方式,通过Gmail、信息、第三方服务快速联系对方。9.Android Beam应用Android Beam是基于NFC的分享方式,两部支持NFC的Android手机背靠背碰一下就能分享机上内容。该功能还会向第三方开放。10.其他一些功能Android 4.0可以通过长按电源键和音量键截图,不再需要其它软件长按 home 的最近程序浏览界面。加入新型“Roboto”字体,适用于高清显示屏,实时墙纸功能。
B. android gpuimage 怎么使用
GPUImage 是iOS下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。GPUImage for Android是它在Android下的实现,同样也是开源的,托管在Github上。
版本:android-gpuimage-1.1.1
Android模拟器上不支持OpenGL ES 2.0所以会报错,可以选用Genymotion测试,或真机上运行。
引用
Caused by: java.lang.IllegalStateException: OpenGL ES 2.0 is not supported on this phone.
(1)使用自定义的ImageView
Xml代码
<jp.co.cyberagent.android.gpuimage.GPUImageView
android:id="@+id/gpuimage"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="1" />
Java代码
mImageView.setFilter(new GPUImageSepiaFilter()); // sepia
mImageView.setFilter(new GPUImageGrayscaleFilter()); // gray
mImageView.setFilter(new GPUImageSharpenFilter()); // sharp
mImageView.setFilter(new GPUImageSobelEdgeDetection()); // edge
C. 安卓4.0与安卓其他版本区别是什么
安卓4.0在系统上的9大改进:
1.新的UI界面更加的人性化
相信关注安卓系统的朋友都看过了早些时候网上发布的安卓4.0系统界面。这次看看发布会上的照片吧。
2.新的通知系统
安卓4.0的通知系统有了很大的改进,用户可以自己决定哪些应用可以发送通知。
安卓 4.0的通知系统现在可以直接向侧面滑动删去通知条目,这样的操作也出现在应用管理列表中。
3.语音输入系统和面部识别功能
Duarte说新系统的键盘在纠错、精度方面有了很大改进。他还演示了语音输入系统,说“smiley face”直接在输入框中插入一个笑脸。
4.新的安卓浏览器
安卓 4.0的浏览器现在直接支持将完整网页离线保存。比第三方应用更好的是该功能现在与默认浏览器完全集成。实现实时预览功能,单一手势关闭所有浏览器标签,快速访问台式机版网站。能够自动与Chrome浏览器实现数据同步。
新浏览器的标签管理界面
5.大幅强化了GMail
Android 4.0的Gmail大幅强化,浏览邮件时左右滑动直接切换上一封/下一封邮件。同时增加了离线搜索功能,可访问过去30天内收到的邮件。
新的 GMail 界面,完全集成会话模式
大幅强化了GMail
6.数据使用管理功能
Android 4.0集成的数据追踪系统可以追踪、分析移动数据流量,设置移动数据使用上限,它集成于系统内部,功能非常齐全,第三方的数据流量管理工具前途堪忧。
每月总是怕流量超过的朋友这回不用担心了
流量管理工具的分析界面
流量管理工具还能具体查看每个应用产生的流量
7.拍照模式的强化
安卓4.0所拍照片只需三次点击就能分享到G+、Facebook、Twitter等任意SNS服务,如果国行引入的话肯定会增加人人网,新浪微博等分享。
安卓4.0新的照片应用现在可以像Instagram一样加滤镜,并且还能加相框、进行全景拍摄。并且相机可以识别人脸,集成 Zero Shutter 技术,快门反应极快,连拍很快。
安卓4.0对于照相的升级
拍照界面
8.新加入的people应用
People应用是通讯录的进化,以联系人照片为核心,界面偏重滑动而非点击。
People应用集成了其它通信工具,比如Twitter、Linkedin、Google+,不出意外的话还会支持自己添加第三方服务。
people应用与Gmail整合,点击邮件里的头像就能弹出附有大照片的快捷联系方式,通过Gmail、信息、第三方服务快速联系对方。
9.Android Beam应用
Android Beam是基于NFC的分享方式,两部支持NFC的Android手机背靠背碰一下就能分享机上内容。该功能还会向第三方开放。
10.其他一些功能
Android 4.0可以通过长按电源键和音量键截图,不再需要其它软件
长按 home 的最近程序浏览界面。
加入新型“Roboto”字体,适用于高清显示屏,实时墙纸功能。
这是我问我哥哥(他在学习java语言编写安卓软件的!)希望您能采纳!
D. 大神推荐一个好用的Android API!!
那方面的api????
------------------
软件库的存在使得Android编码更方便快捷。在如此多 Android库中,我们该如何寻找最合适的一款呢?下面我们做了一个列表供你参考。
动画(Animation)
Android View Animations:强大的动画库,通过对它的使用,可以轻松创建各种动画效果。
RecyclerView Animators:允许操作者使用含炫酷动画效果的RecyclerView类。
APIs
CloudRail:帮助操作者更快地进行API集成服务。它将多个服务(例如Dropbox,Google Drive和OneDrive)捆绑成一个统一的API。此外,它可自动处理API更新,并保持API的代码一致。其接口可用于云存储,社交,支付等。
Retrofit:Retrofit由Square公司开发,是Android的REST客户端,其类型安全,可将http API转换成Java接口。
图表(Charts)
MPAndroidChart:一款强大的图表生成库,可在Android上生成图表,同时还提供8种不同的图表类型和多种手势。
AndroidCharts:一款简单的图表创建工具,具有自定义的功能。
数据库(Database)
SQLBrite: 围绕SQLiteOpenHelper和ContentResolver创建封装,以在查询中使用流式语义。
Sugar ORM:使用SQLite数据库的简单操作,优势在于无需编写SQL查询。
数据架构(Data Structure)
Eclipse Collections:用于Java的Collections框架,可为容器类型附加迭代方法的操作等。
日期和时间(Date & Time)
TimesSquare for Android:简单独立的日历小部件,可在日历视图中选择日期。
Material Calendar View:移植到Material design的安卓CalendarView。
依赖(Dependencies)
Dagger:进行Android依赖注入的快捷方式。
文档(Files)
Android-FilePicker:一款照片选择器,可从列表中选择图片或文档。
Material File Picker:Material design中的文件选择器。
函数式编程(Functional Programing)
Retrolambda:在Java 7中使用Lambdas的一种操作。
手势(Gestures)
Sensey:在Android应用程序中添加手势的简单操作。
Android 3D Touch – PeekView:类似于iOS上的3D Touch,用以“预览”程序内容。
蓝牙(Bluetooth)
Android-BluetoothSPPLibrary:使用序列化蓝牙端口(Bluetooth Serial Port Profile)的简单操作。
RxAndroidBle:蓝牙低耗能处理工具。
相机(Camera)
CameraFilter:使用OpenGL着色器的实时相机滤镜。
Material Camera:Android开发的快速简易的相机框架。
位置(Location)
ReactiveLocation:Google Play API的小型但实用的封装程序,用于获取位置。
Smart Location Library:简化位置提供项的库。
布局(Layout)
Android Swipe Layout:为对象提供滑动布局,如,向左滑动即删除的操作。
FlexboxLayout :为Android提供框布局,其内容可通过CSS了解。
日志(Logging)
Logger:Android日志记录器。
Hugo:用触发注释的方法调用记录。
地图(Maps)
AirMapView :用以查看Google Maps API摘要,非常适合没有Google Play服务的应用程式。
Google地图的实用程序,如,热点地图或标记聚类。
音频播放器(Audio)
Music Player:含UI的完整音乐播放器。
RxAndroidAudio :封装带有Rx支持的Android Audio API RxAndroid音频播放器。
GIF
android-gif-drawable:使用视图和可绘制的GIF动图。
GifView :Android上使用View播放的GIF库。
图像(Image)
uCrop:对Android上的图片进行裁剪的库。
Glide:Android的媒体管理和图片加载库。
视频播放器(Video)
VideoPlayerManager:对Android MediaPlayer类的使用进行帮助说明的库。
Easy Video Player:易于操作的视频播放器,可通过视图使用。
信息(Messaging)
Chateau:在Android应用中提供聊天功能的框架。
网络(Networking)
OkHttp:Android的HTTP客户端。
AndroidAsync:基础级网络协议库。
消息推送(Push Notifications)
PubNub:用于处理推送通知的商业服务。
Gandalf:用于发送更新或维护相关的通知。
支付(Payments)
Android In-App Billing v3 Library:通过Android v3 API轻松处理应用内置付款的库。
Checkout:处理应用内购买操作的库。
安全(Security)
Sodium:轻松做加密,解密,签名和散列操作的工具。
PiracyChecker:通过使用Google的LVL,防止应用程式被盗用的工具。
文本(Text)
Ticker:显示滚动文本的UI组件。
MaterialEditText:Material Design的文本输入器。
字体(Font)
fontbinding:使用数据绑定的XML自定义字体的操作。
Calligraphy:在Android应用程式上使用传统字体的简易操作。
用户界面(User Interface)
Material Design Android Library:在Android中使用Google的Material Design(Android 2.2版)的库。
Material:将Material Design导入原有应用程序的库。
指示器(Activity Indicator)
AppIntro:为应用程序创建炫酷简介,类似于Google原始应用中的。
LolliPin:为应用程序提供pin密码。
操作按钮(Buttons)
Android-Bootstrap:通过使用Bootstrape规则,进行诸如在APP中创建按钮的操作。
Android Morphing Button:Android的操作按钮,其形状大小可更改。
表格(Form)
Vertical Stepper Form Library:在Material Design中创建表单的库。
键盘(Keyboard)
KeyboardVisibilityEvent:显示与隐藏键盘的简单操作。
AndroidKeyboardWatcher:追踪键盘开启/关闭操作情况的库。
菜单(Menu)
BottomBar:在Material Design中提供底部导航栏的视图组件。
Side Menu:为应用程序添加侧边菜单栏的工具。
评分(Rating)
Android-Rate:提醒用户对应用程序进行评价的简易库。
SimpleRatingBar:用于星级评分的UI组件。
滑屏(Slider)
SlidingMenu:轻松为应用程序创建滑动式菜单项。
MaterialDrawer:Android中轻便灵活的抽屉布局式库。
英语原文:Best Android Libraries for Developers
编译:开源中国
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:面向开发者的最佳 Android 库列表
本文地址:https://www.oschina.net/news/78857/best-android-libraries-for-developers
E. 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的版本也有限制。因此,如果计划在项目中使用,要提前做好预备工作,以防止对已有项目和业务带来不必要的麻烦,反而影响工作进度。
F. 有没有拍照滤镜的第三方SDK
微软貌似没有提供这样的功能,DirectX的sdk应该可以直接加入msdn的,而且不需要用户手动添加,比如我安装了ddk,MSDN里就自动加入了DDK的文档