一.了解AIDL语言: 在Android中, 每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java中是不支持跨进程内存共享的.因此要传递对象, 需要把对象解析成操作系统能够理解的数据格式, 以达到跨界对象访问的目的.在JavaEE中,采用RMI通过序列化传递对象.在Android中, 则采用AIDL(Android Interface Definition Language:接口描述语言)方式实现. AIDL是一种接口定义语言,用于约束两个进程间的通讯规…
一:Service是什么 Service,服务.一般用于提供需要在后台长期运行的服务(如复杂计算.下载等等耗时任务),其特点是长生命周期的.没有用户界面.在后台运行的. 二:Service的生命周期方法 在定义Service子类时,需要重写以下方法: 内部自动调用的方法 作用 onCreat() 创建服务 onStartCommand() 开始服务 onDestroy() 销毁服务 onBind() 绑定服务 onUnbind() 解绑服务 在其他地方,创建服务.启动服务.停止服务时,需要调用以…
一.启动服务的两种方法方法: 第一种:  startService()和stopService()启动关闭服务.适用于服务和Activity之间没有调用交互的情况.如果相互之间需要方法调用或者传递参数,需要使用bindService()和unbindService()方法启动关闭服务.   第二种: 采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法,这个时候调用者和服务绑定在一起. 如果客户端要…
SeekBar——拖动条 拖动条(SeekBar)组件与ProgressBar水平形式的显示进度条类似,不过其最大的区别在于,拖动条可以由用户自己进行手工的调节,例如当用户需要调整播放器音量或者电影的播放速度都会使用到拖动条SeekBar类. android:thumb,指定一个Drawable对象,该对象将作为自定义滑块:为了实现程序拖动滑块位置的改变,程序可以绑定一个OnSeekBarChangeListener监听器. android:thumb,用于改变拖动条上滑块的外观. 布局文件==…
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7515194.html 在前面介绍四大组件的时候提到了可以对外部事件进行过滤的Broadcast Receiver,这里就对它的用法作进一步的探讨. 一:Broadcast Receiver的使用 主要有以下三个流程:定义接收器,在其中定义接收到广播后的响应行为——注册接收器,配置可以接收到什么广播——在其他地方发送广播. 1)定义接收器:继承BroadcastReceiver定义子类 public clas…
目录(?)[-] Local service代码 调用Local ServiceLocal Service client代码 AndroidManifestxml定义Serviceacitivty的launchMode 一些思考 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Local Service的目的是更容易实现后台任务.下面是一个简单的小例子,通过一个activity请求服务和…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见Pro Android学习笔记(六四):安全和权限(1):签发apk,我们将对package做进一步了解. 每个apk都有一个唯一的根包名,在AndroidManifest.xml中定义,如下.开发者为包进行签发,前面和包名绑定,其他开发者不能对这个包进行更新. <?xml version="1…
目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Remote Service在之前的学习笔记 Android学习笔记(五三):服务Service(下)- Remote Service中介绍过.远程服允许行其他应用调用,及允许RPC(remote procedure call).在Android中remote需要…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接受可用于本地,也可以用于不同的进程(应用)间.广播还常用于后台服务,当接收器收到某个广播消息时,通常会在通知栏中提示用户,用户点击通知,可以进入某个Activity中进行处理. 小例子 接收器应用为本小例子,发送广播应用利用上一学习的小例子. 代码 关于通知,可以参考Android学习笔记(五五):…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 之前我们有一篇很好的博文<Android学习笔记(三一):线程:Message和Runnable>对Handler进行了介绍.在此,我们作进一步了解. 前面,我们已经学习到主线程有一个主线程队列,对于异步处理(如Activity的UI触发.触发本地服务的startService(),以及外部进程调用Activity和广播).异步处理以消息…
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding Interfaces go微服务框架kratos学习笔记八(kratos的依赖注入) 笔记二提过依赖注入,和如何生成,但没有细讲,本文来简单看看kratos的依赖注入. 什么是依赖注入 来看一个小程序, 创建一个小程序模拟带有问候的事件 我们将创建三个结构类型: 1)为迎宾员创建消息 message…
udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八 声明:本文採用下面协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/master/Mar…
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ Android提供服务,服务是运行在后台的组件,没有UI,独立于activity的生命周期.有两种类型的服务:local services和remote services.本地服务是只能被本应用调用,而远端服务则可以被其他应用调用.远端服务通过AIDL(Android Interface Definition Language)描述.在服务…
目录(?)[-] Intent基本含义 系统的Intent Android引入了Intent的概念来唤起components,component包括:1.Activity(UI元件) 2.Service(后台代码) 3.Broadcast receiver(处理广播消息的代码) 4.Content provider(抽象数据的代码) Intent基本含义 intent是通知平台处理(唤起)的动作.Android唤起的动作将取决于注册了什么动作.例如我们有个简单的Activity:IntentBa…
在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发环境. 一些基础概念 View.View是UI基础构建元素.View也可作为view容器,即有层次嵌套.你所看到的一切UI都是view. Activity.Activity通常是应用的一屏,通常含有一个或多个View(虽然不是必须),顾名思义,是帮助用户处理一件事的活动.应用通常有多个activit…
作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是用来解决Redis的单点容量问题. 如何来解决Redis单点容量问题呢? 如果数据可以拆分,我们可以让不同业务的客户端打到不同的Redis实例中. 如果数据不能拆分,我们有如下方式: 方案2-1 modula方式 可以通过Hash加上取模的方式来定位打到哪个Redis实例中. 这种方式的弊端在于:模…
作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+最朴素的阻塞的方式来实现一版客户端和服务端通信的代码,然后再重构成Netty官方推荐的写法. 第一步,引入netty依赖包. <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</a…
前言 我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读Android深入四大组件(二)Service的启动过程这篇文章,知识点重叠的部分,本篇文章将不再赘述. 1.ContextImpl到ActivityManageService的调用过程 我们可以用bindService方法来绑定Service,它的实现在ContextWrapper中,代码如下所示.frameworks…
1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那一刻起一直到最后隐藏所经历的若干阶段,理解其生命周期对确保应用程序正确的工作是极其关键的. a.Activity的生命周期 Activity的生命周期中包含三种状态:Resumed状态.Paused状态.Stopped状态,每一个Activity都处于某一个状态. Resumed状态,当Activi…
 Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在Android 3.0 SDK中为平板引入,在4.0中也可以在phone中使用.在title中提供类似tab和菜单的效果,有三种形式:Tabbed action bar,list action bar和standard action bar,我们将在小例子中进行示范. Home Icon 在Actio…
目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 之前,我们直接在activity中执行http通信,在通信过程中可能会出现连接超时.socket超时等情况,超时阈值一般是秒级,例如AndroidHttpClient中设置的20秒,如果出现超时,就…
目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ 应用有时需要从web中下载一个大文件,并保存在本地,这个操作过程是标准的,因此在Android2.3引入了DownloadManager类.相关的学习也可以参考Android学习笔记(四六):互联网通信-文件下载. 小例子 先看一个小例子,如下图所示.lay…
目录(?)[-] SOAP JSON和XMLPullParser Exception处理 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/ SOAP SOAP,即Simple Object Access Protocol,是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息.Android并不提供SOAP API接口.开发者可以通过kSOAP2开发套件在Android上…
目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Post支持携带body,content-type为multipart.本次我们将尝试通过http post上传一个小文件. 建立测试环境 上传文件的测试环境很难找,下载了Tomcat,想装一个环境,打开后,发现忘得也差不多,要看帮助,比较麻烦,下面是我上传文件到189网盘抓的包,上传一个图片文件,整个…
目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用service提供很多功能,例如利用Google Maps API,现在我们将聚焦在HTTP serice中. Android SDK提供HttpClient,和J2EE中的接口非常相似.最常用的就是HTTP GET和HTTP POST.相关内容也可以阅读Android学习笔记(四五):互联网通信-Htt…
目录(?)[-] Chronometer计时器控件 倒计时CountDownTimer Switch控件 Space控件 其他控件 Android提供了很多控件,基本上都是view的扩展. Chronometer:计时器控件 Chronometer是一个计时器,提供开始计时,停止计时和复位等功能,它的实现很简单.小例子XML文件如下: <?xml version="1.0" encoding="utf-8"?><LinearLayout ….. &…
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只含有一个ListView的Activity,并通过setListAdapter()方法来管理adapter.我们可以通过扩展ListActivity来实现. 我们要在整个屏幕上显示ListView,我们直接继承使用ListActivity,不需要在定义自己的layout XML文件,我们在上一学习中…
解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键就是component 名字,在<intent-fliter>中声明的其他属性被忽略.对于implicit intent,则根据action,category和data来进行匹配.然而一个intent fliter中可以声明多个actions,多个categories,多个data属性,因此可以满…
Content Provider是抽象数据封装和数据访问机制,例如SQLite是Android设备带有的数据源,可以封装到一个content provider中.要通过content provider进行读写,需要使用URI.推荐阅读Android学习笔记(四七):Content Provider初谈和Android联系人信息.Android学习笔记(四八):提供自己的Content Provider和Android学习笔记(四九):通过Content Provider访问数据.Content…
文章转载仅仅能用于非商业性质,且不能带有虚拟货币.积分.注冊等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 通过widget定义.我们在widget列表中看到了我们的TestWidget.当我们拖拽widget到主页时.假设在appwidet-provider中定义了android:configure的java类,在widget实例创建后会立即唤起配置activity.这个activity主要完毕两个任务:1.配置初始化数据…