![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
杨天睿
这个作者很懒,什么都没留下…
展开
-
Android JSON 解析
json JavaScript 对象表示法(JavaScript Object Notation)。独立于语言和平台, 比 XML 更小、更快,更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。JSON格式详解JSON有三种结构1. JSON对象 JSON对象简单而言便是键值对或名值对,而“值”可以是数值、字符串和布尔类型等。 1. JSON原创 2016-05-24 23:28:02 · 364 阅读 · 0 评论 -
Android 入门项目NoteBook
这两天准备随便写几个Android样例,对于这种简单的项目还是比较熟练的:-),稍后给出github地址,希望一起进步。欢迎大家Fock.Android NoteBook关键技术1.CursorLoader和CursorAdapter实现异步加载数据2.Toolbar的使用3.DrawerLayout和Fragment实现侧滑菜单4.SQLite 存储数据作为一个入门案例就先介绍到这么多了,没有什原创 2016-05-24 23:49:54 · 2190 阅读 · 0 评论 -
Android MVP 设计模式
这篇文章参照Hongyang的博客整理。 浅谈 MVP in AndroidMVP设计模式何为MVP1.View 对应于Activity,负责View的绘制以及与用户交互2.Model 依然是业务逻辑和实体模型3.Presenter 负责完成View于Model间的交互Presenter 在这里类似于一个主持人的角色,他负责Model实体类与VIEW表示层的交互,这个交互通常使用接口实现M原创 2016-05-25 21:08:01 · 391 阅读 · 0 评论 -
Android RecyclerView 实现瀑布流效果
RecyclerView RecyclerView 是MetrialDesign 的重要一个组件,未来是一定会替代ListView的,RecyclerView结构松散,非常适合自定义。稍后会补上一篇RecyclerView基础的文章。先看效果: 这里的每张图片都有着不同的尺寸,但RecyclerView可以将它们完美的结合在一起,表现形式是不是很美观:-)每个item的布局文件就是一个Ima原创 2016-05-26 21:32:54 · 683 阅读 · 1 评论 -
okhttp框架的使用
okHttp框架 OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket, 通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势jar包依赖需要添加两个jar包okhttp和对应版本的okio本文使用okhttp3.3 okio1.6GET 方式建立连接Request对象用于建立连接// 首先得有一个OkHttpClient对象OkHttp原创 2016-05-27 11:44:52 · 1561 阅读 · 0 评论 -
Android CardView 的使用
CardView CardView继承至FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影。CardView是一个Layout,可以布局其他View。CardView的 常用属性card_view:cardElevation 阴影的大小card_view:cardMaxElevation 阴影最大高度card_view:cardBackgroundCo原创 2016-05-27 16:51:57 · 563 阅读 · 0 评论 -
Android Agera 框架简单使用
Agera响应式框架Agera框架由google推出,是一个响应式编程的框架 Agera is a set of classes and interfaces to help write functional, asynchronous, >and reactive applications for Android. Requires Android SDK version 9 or hi原创 2016-05-29 11:11:23 · 2083 阅读 · 0 评论 -
gson框架的使用
GSON GSON 是Google的一个json解析框架,和传统的json解析相比,有着明显的优势。 关于基本的JSON解析,你可以看下面这篇文章 Android JSON的解析API引入 本文使用的gson-2.3.1.jar基本数据类型和json字符串的转换通过toJson()将基本数据类型转换成json字符串public class Main { publ原创 2016-05-27 16:04:03 · 710 阅读 · 0 评论 -
使用Agera,gson,okhttp获取豆瓣读书数据
使用Agera,GSON和okhttp解析数据本文使用的是豆瓣读书的API项目演示:demo下载地址:AgeraDemo实现在线查找图书的功能,整合了okhttp,gson,agera框架API测试 URL格式: URl:https://api.douban.com/v2/book/search?q= 返回数据{ "count":1, "start":0, "tot原创 2016-05-29 22:27:58 · 805 阅读 · 0 评论 -
Android Service的Binder通信机制
Service 的启动方式使用startService()启动,此时无法实现与启动者的通信,当启动对象结束时,Service仍然会在后台运行,使用stopService()可以停止Service的运行.使用bindService()将启动Service的对象进行绑定,使用unBindService()停止绑定,并且结束运行。现在介绍此方式。Binder对象 Binder对象相当于Servi原创 2016-05-17 19:39:43 · 405 阅读 · 0 评论 -
Android SwipeRefreshLayout 实现下拉刷新
SwipeRefreshLayout实现下拉刷新功能 下拉刷新是一个非常实用的功能,在下拉刷新中,可以进行加载数据,同时通知UI更新数据,非常适合在使用adapter的组件更新数据。 下面通过一个简单的例子来介绍用法这个demo的意思是在下拉刷新时,向adapter中更新数据,刷新结束后,在UI中可以 看到更新的结果. 布局文件中,使用SwipeRefreshLayout包裹要刷新的组原创 2016-05-30 22:26:31 · 531 阅读 · 0 评论 -
IntentService的使用
使用Service需注意 Service 是在主线程中执行的,所以不能再Service中直接执行网络加载等耗时操作,应该开启子线程进行加载。使用IntentService IntentService会自动开起一个工作线程,在此工作线程中执行耗时操作,不会引发ANR异常. IntentService必须重写onHandleIntent(),并在此方法中执行耗时操作. Intent原创 2016-05-18 15:43:10 · 328 阅读 · 0 评论 -
ContentProvider入门
ContentProvider简介多进程的程序之间进行互相通信时,使用ContentProvider可以实现数据的共享,ContentProvider提供的数据可以来自文件,数据库等,通过URI与调用者进行关联. 从这点上看,ContentProvider使应用像一个网站,URI即域名。:-) 在ManiFest文件 中进行声明<!-- antuorities属性表明当期ContentPro原创 2016-05-18 17:00:53 · 503 阅读 · 1 评论 -
Android使用TabLayout实现选项卡
使用TabLayout实现一个选项卡效果,之前一直自定义ViewGroup实现,今天之间用的Google框架,给我的感觉就是方便!先上效果图:内容区域使用的ViewPager,导航条使用的TabLayoutTabLayout在android.support.design包下,使用AS的同学记得先导入下布局使用的线性布局:挺简单的,不多说了。<andr原创 2016-05-08 20:08:48 · 3633 阅读 · 0 评论 -
Android Reader -- 一个简单的网络通信APP
Android Reader 最近将学习的东西整理了下,就有了这么个APP,等做完了发现,这东西还是很实用的:-).使用技术:Metrial Design设计okhttp,gson,agera处理网络请求glide加载图片TO DO 还有一些功能没有做 1. 对网络状态的友好提示 2. 书籍详情页不够美观,需重写设计 3. 增添分享功能我会在此版本的基础上进行修原创 2016-06-01 14:43:21 · 496 阅读 · 0 评论 -
Android Loader机制,实现异步加载数据
Loader 从Android3.0开始,Android SDK提供了Loader技术,使用Loader技术可以很容易进行数据的异步加载。Loader 的主要APILoaderManager:可以通过Activity或者的Fragment的getLoaderManager()方法得到LoaderManager,用来对Loader进行管理, 一个Activity或者Fragment只能有一个L原创 2016-05-18 22:41:47 · 451 阅读 · 0 评论 -
Bmob的简单应用 --- HelloWorld
后端的问题的确很令Android开发者烦恼,Bmob后端云提供的解决方案不错,加上最近要做关于后端的,先写个Demo试下.Bmob SDK配置关于注册之类的就不说了,直接去官网吧,从SDK的配置开始看.使用工具 : Android Studio Bmob版本 : v3.4.7 先引入Maven 仓库,在AllProject中allprojects { repositories {原创 2016-06-07 15:59:04 · 1367 阅读 · 0 评论 -
CursorAdpater 从数据库中加载数据
CursorAdpater 继承与BaseAdpter是一个虚类,需自行实现里面的方法。 为ListView和Cursor提供了连接的桥梁.Makes a new view to hold the data pointed to by cursor. 找到ListView的Item组件,可以使用ViewHolder abstract View newView(Conte原创 2016-05-19 19:55:32 · 502 阅读 · 0 评论 -
机票管理系统(Android版)
根据老师一个要求做了机票管理系统,数据库都在Android端,相当于作业吧,下面看下实现。机票管理系统开发工具:Android Studio, Genymotion,Ubuntu API 版本:Android SDK 23 数据库:SQLite3实现功能创建航空公司表、航班表等信息。每个航班信息的输入。每个航班的坐位信息的输入;当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班;原创 2016-06-24 09:48:15 · 5950 阅读 · 4 评论 -
CursorLoader与ContentProvider结合,实现异步加载
使用CursorLoader和ContentProvider结合,可以实现异步更新数据CursorLoader介绍我们知道,Loader一个抽象的类,用于执行异步加载数据,这个Loader对象可以监视数据源的改变和在内容改变后,以新数据的内容改变UI的展示。 它是一个抽象接口,所有需要实现的Loader功能的类都需要实现这个接口,但是如果需要自己开发一个装载机的话,一般并不推荐继承Loader接口原创 2016-05-21 09:22:15 · 1557 阅读 · 1 评论 -
Android使用 DrawerLayout实现侧滑
DrawerLayout简介 drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使原创 2016-05-21 17:02:34 · 737 阅读 · 0 评论 -
Ubuntu + Android Studio NDK环境的搭建
简单介绍下Android NDK环境的搭建,最好已经配置了科学上网,这样使用Android Studio的自动更新比较方便。配置NDK使用Android Studio下载NDK,也可以使用的SDK Manager 进行下载,并配置环境变量检测环境变量 ndk-which gcc 配置成功时 配置Gradle gradle插件不支持NDK(当然用它也可以进行NDK开发,就是非常不方便),我原创 2016-06-25 15:32:48 · 600 阅读 · 0 评论 -
Android VelocityTracker 速度跟踪器
使用VelocityTracer可以实现跟踪手指移动的速度变化,实时计算出速度,在Scroller中应用广泛,下面给出简单用法。简介 VelocityTracer可以帮助你追踪一个touch事件(flinging事件和其他手势事件)的速率。当你要跟踪一个touch事件的时候,使用obtain()方法得到这个类的实例,然后 用addMovement(MotionEvent)函数将你接受到的moti原创 2016-06-09 11:15:18 · 418 阅读 · 0 评论 -
Ubuntu 配置Android真机开发环境
Linux下配置Android环境还是非常简单的,但是之前一直显示设备为null, 按照一以下方法加个驱动就好.查看USB设备输入lsusb查看当前所有通过usb连接的外设Bus 004 Device 002: ID 8087:8000 Intel Corp. Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBu原创 2016-06-10 10:01:34 · 386 阅读 · 0 评论 -
Android 摄像头系统调用
一个简单的demo演示摄像头的用法 直接启动摄像头使用权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" />在Activity中以接收回传值的方式处理拍照的图片publ原创 2016-06-25 20:56:52 · 505 阅读 · 0 评论 -
Bmob 推送功能Demo
这个Demo使用Bmob实现了一个小的推送功能 ,顺便整理下学过的知识.初始化Bmob请看这篇文章Bmob的简单应用 — HelloWorldBmob推送功能简介 通过云推送,你可以随时随地的向应用程序的用户推送通知或消息,与用户保持积极互动提升用户留存率,活跃度和用户体验度。Bmob配置先下载推送SDK,后将jar包放在libs目录下,然后添加到项目,ADT和AS配置过程一样.添加权限原创 2016-06-10 11:31:25 · 3359 阅读 · 0 评论 -
Android TextInputLayout实现注册布局
使用TextInputLayout可以轻松的实现带友好提示的输入框,并且带有Material Design的动画提示,下面我们来看下使用过程.导入GradleTextInputLayout在Design包下 compile 'com.android.support:design:24.0.0-beta1'为每个TextInputLayout包裹一个EditTextTextInputLayout其实原创 2016-06-11 13:02:23 · 619 阅读 · 0 评论 -
AppWidget的使用(一)
Android AppWidget桌面组件的使用App Widget是一种可以被放在其他应用中(如Launcher)并接收周期性更新的应用视图。 这些视图在UI上就表现为Widget,并且你可以同App Widget Provider一起发布。1.注册组件<receiver android:name="AppWidget"> <!-- 唯一需要显示声明的广播 --> <原创 2016-07-12 13:40:48 · 395 阅读 · 0 评论 -
Android 云笔记APP的实现
这两天对笔记软件进行了迭代,利用Bmob后端,实现了用户注册于笔记同步功能,下面对实现要点进行记录。备份功能同步功能使用技术Bmob后端云SDK的使用;Service后台执行计划任务(自动将笔记上传),发送广播,通知更新;ContentProvider提供数据;sqlite实现本地缓存Material Design记事本的实现参照这篇文章吧,我只是对它进行了封装Android 入门项目No原创 2016-06-15 11:23:31 · 4351 阅读 · 18 评论 -
Android EventBus框架的使用(二)
第一篇文章介绍了基础,从下面的连接即可进入 http://blog.csdn.net/y874961524/article/details/51946238这次实现一个选项卡的效果,每次单击时,切换对应的Item ListFragment 中创建列表/** * Created by yangtianrui on 16-7-23. * 注册EventBus */public cla原创 2016-07-24 00:32:17 · 407 阅读 · 0 评论 -
Android 实现开机启动
使用广播,监听开机事件,在广播中启动Service或者Activity首先需要权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />在配置文件中注册广播<receiver android:name=".MyReceiver"> <intent-filter> <acti原创 2016-07-01 20:02:34 · 279 阅读 · 0 评论 -
Android PreferenceFragment实现设置界面
从Android 3.0以后官方不再推荐直接让PreferenceActivity加载选项设置布局文件,而是建议使用PreferenceFragment,下面介绍下选项设置的使用.继承自PreferenceFragment , 在OnCreate中加载设置文件设置文件一般存放在XML资源目录下每一次设置,都会将设置文件以键值对的形式进行保存,即设置文件持久化设置一下SharePreferen原创 2016-06-11 23:04:50 · 1362 阅读 · 0 评论 -
Gradle编译框架基础
Gradle 编译框架什么是Gradle Gradle是一种依赖管理工具,基于Groovy语言, 面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。Gradle 的基本概念项目中的gradle文件 /app/build.gradle这个文件位于app模块,也是最主要的模块的gradle配置文件 下面看下文件内容//原创 2016-07-18 17:29:58 · 446 阅读 · 0 评论 -
Android EventBus框架的使用
EventBus框架 EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。EventBus是一种基于观察者模式的框架,类似的框架还有RXJav原创 2016-07-18 22:29:00 · 323 阅读 · 0 评论 -
Android Logger 日志框架源码分析
Logger框架使用 Logger框架是一个优雅的日志系统,通过Logger可以很漂亮的打印出Android系统日志。下面从用法开始逐层介绍。在Gradle 依赖中添加,引入Logger库compile 'com.orhanobut:logger:1.15' 使用方法1 初始化,一般在Application中完成。Logger .init(YOUR_TAG)原创 2016-09-15 00:03:57 · 791 阅读 · 0 评论 -
Android Studio快捷键整理
此处的快捷键是映射KeyMap为Eclipse时的,不是纯AndroidStudio 的.编辑模式快捷键查找快捷键[Find Action]:Ctrl+Shift+A快速查找文档[Quick Documention]:Ctrl+Q 添加书签: Ctrl+F11在方法调用的地方显示参数信息:Ctrl+P 错误的显示说明或警示插入符号:Ctrl+F1Ctrl+G / Ctrl+Alt+Shift+G:原创 2016-08-27 09:59:12 · 464 阅读 · 0 评论 -
Android WebView 的使用
WebView 有两个非常重要的辅助类,WebViewClient和WebViewChromeCient,先介绍这两个类的用区别WebViewClient主要帮助WebView处理各种通知、请求事件的.onLoadResourceonPageStartonPageFinishonReceiveErroronReceivedHttpAuthRequestWebChromeClient主要原创 2016-09-21 17:24:56 · 654 阅读 · 0 评论 -
Android 使用Charles 进行抓包
1. 下载Charles工具www.charlesproxy.com 2. 手机安装Charles证书http://www.charlesproxy.com/assets/legacy-ssl/charles.crt国内的原因,这个网站访问不上去,需要提前下载好push到手机中3. 手机配置代理手机和电脑需在同一个网段 长按Wifi,选择代理模式为手动,此处的代理设置为电脑的IP地址,端口为888原创 2016-10-10 21:50:24 · 2445 阅读 · 0 评论 -
WebChromeClient的简单使用
WebChromeClient类可以实现这个功能,对JS的弹窗或新窗口进行处理,下面实现这样一个Demo,新打开窗口时,使用一个新的WebVIew打开MainActivity/** * 这是一个关于WebView的Demo * 当webview启动新的页面时,Native层产生相应的变化 */public class MainActivity extends AppCompatActivi原创 2016-09-25 12:54:35 · 1005 阅读 · 0 评论 -
Android 实现类似美团的菜单效果
参考 :http://blog.csdn.net/qq_20785431/article/details/52528404滑动后 每次滑动都会显示不同的菜单,下面介绍下如何实现这个效果实现原理:将GridView通过Adapter设置给Viewpager,使用Viewpager滑动时动态进行选择相应的GridView,每个GridView数据源有所不同.MainActivity代码如下:pub原创 2016-10-23 20:49:48 · 3710 阅读 · 0 评论