Welcome 微信登录

首页 / 移动开发 / Android

详解android环境下的即时通讯

详解android环境下的即时通讯

首先了解一下即时通信的概念。通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯。消息通道可由TCP/IP UDP实现。通俗讲就是把一个人要发送给另外一个人的消息对象(文字,音视频,文件)通过消息通道(C/S实时通信)进行传输的服务。即时通讯应该包括四种形式,在线直传、在线代理、离线代理、离线扩展。在线直传指不经过服务器,直接实现点对点传输。在线代理指消息经过服务器,在服务器实现中转,最后到达目标账号...
详解Android 图片的三级缓存及图片压缩

详解Android 图片的三级缓存及图片压缩

为什么需要图片缓存Android默认给每个应用只分配16M的内存,所以如果加载过多的图片,为了防止内存溢出,应该将图片缓存起来。图片的三级缓存分别是:内存缓存本地缓存网络缓存其中,内存缓存应优先加载,它速度最快;本地缓存次优先加载,它速度也快;网络缓存不应该优先加载,它走网络,速度慢且耗流量。三级缓存的具体实现网络缓存根据图片的url去加载图片在本地和内存中缓存 public class NetCacheUtils {private LocalCacheU...
Android系统的五种数据存储形式实例(一)

Android系统的五种数据存储形式实例(一)

Android系统有五种数据存储形式,分别是文件存储、SP存储、数据库存储、contentprovider 内容提供者、网络存储。其中,前四个是本地存储。存储的类型包括简单文本、窗口状态存储、音频视频数据、XML注册文件的各种数据。各种存储形式的特点不尽相同,因此对于不同的数据类型有着固定的存储形式,本文为演示方便给出的案例基本相同,都是是采用账号登录来演示数据存储,保存账号和密码信息,下次登录时记住账号和密码。重在说明各种存储形式的原理。文件存储:以I/...
Android使用Notification实现宽视图通知栏(二)

Android使用Notification实现宽视图通知栏(二)

Notification是在你的应用常规界面之外展示的消息。当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏。要查看消息的详情需要进入通知抽屉(notificationdrawer)中查看。通知栏和通知抽屉(notificationdrawer)都是系统层面控制的,你可以随时查看,不限制于app。Notification 的设计:作为android UI中很重要的组成部分,notification拥有专属于自己的设计准则。Notifica...
Android系统的五种数据存储形式实例(二)

Android系统的五种数据存储形式实例(二)

之前介绍了Android系统下三种数据存储形式,http://www.jb51.net/article/99468.htm。今天补充介绍另外两种,分别是内容提供者和网络存储。有些人可能认为内存提供者和网络存储更偏向于对数据的操作而不是数据的存储,但这两种方式确实与数据有关,所以这里还是将这两种形式简要的说明一下。Content Provider:Content Provider,中文名是内存提供者,Android四大组件之一,内容提供者是应用程序之间共享数...
Android开发仿QQ空间根据位置弹出PopupWindow显示更多操作效果

Android开发仿QQ空间根据位置弹出PopupWindow显示更多操作效果

我们打开QQ空间的时候有个箭头按钮点击之后弹出PopupWindow会根据位置的变化显示在箭头的上方还是下方,比普通的PopupWindow弹在屏幕中间显示好看的多。先看QQ空间效果图: 这个要实现这个效果可以分几步进行1.第一步自定义PopupWindow,实现如图的样式,这个继承PopupWindow自定义布局很容易实现2.得到点击按钮的位置,根据位置是否在屏幕的中间的上方还是下方,将PopupWindow显示在控件的上方或者下方3.适配问题,因为P...
Android 破解视频App去除广告功能详解及解决办法总结

Android 破解视频App去除广告功能详解及解决办法总结

Android 破解视频App去除广告功能作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频还要出现广告那就是打我脸,但是我有没有钱买会员,只能靠着毕生技能去耍耍去除广告了。下面就来介绍一下如何进行视频广告的去除。一、视频广告播放原理首先我们需要了解的一个基本知识点那就是广告其实也是一段视频,那么他肯定有请求地址和播放地址。那么我们的思路就来了,如果能够得到这些地址的话,我们就可以去...
Android实现语音数据实时采集、播放

Android实现语音数据实时采集、播放

最近做的项目是和语音实时采集并发送,对方实时接收并播放相关,下面记录下实现的核心代码。 很多Android开发者应该知道android有个MediaRecorder对象和MediaPlayer对象,用于录制和播放音频。这个弊端在于他们不能实时采集并发送出去,所以,我们只能使用AudioRecord和AudioTrack来实现。 记得申明权限:<uses-permission android:name="android.permission.MODIF...
详解Android中使用Notification实现进度通知栏(示例三)

详解Android中使用Notification实现进度通知栏(示例三)

我们在使用APP的过程中,软件会偶尔提示我们进行版本更新,我们点击确认更新后,会在通知栏显示下载更新进度(已知长度的进度条)以及安装情况(不确定进度条),这就是我们今天要实现的功能。实现效果如下:在代码实现功能前,我们先解释进度条的两种状态:(1)显示一个已知长度的进度条指示器(Displaying a fixed-duration progress indicator)为了能够显示一个确定的进度条,通过调用setProgress() setProgres...
Android RenderScript实现高斯模糊

Android RenderScript实现高斯模糊

昨天看了下RenderScript的官方文档,发现RenderScript这厮有点牛逼。无意中发现ScriptIntrinsic这个抽象类,有些很有用的子类。其中有个子类叫ScriptIntrinsicBlur类,大致就是将图片实现高斯模糊。ScriptIntrinsic的申明:ScriptIntrinsicBlur类的申明:加上结合着看了下SDK中的samples,自己写了个高斯模糊。 ( sample的具体位置为: SDK目录/samples/andr...
Android面试笔记之常问的Context

Android面试笔记之常问的Context

前言Context,在翻译为上下文,也可以理解为环境,是提供一些程序的运行环境基础信息。基本上在开发项目的时候,时刻都有接触到。Android程序不像Java程序,随便创建一个类,写个main()方法就能跑,而是要有一个完整的Android工程环境,在这个环境下,有像Activity、Service、BroadcastReceiver等系统组件,而这些组件并不是像一个普通的Java对象new一下就能创建实例的了,而是要有它们各自的上下文环境,也就是Cont...
Android小挂件(APP Widgets)设计指导

Android小挂件(APP Widgets)设计指导

应用小挂件(也叫做窗口小挂件)在android1.5的时候被第一次引出,后来再android3.0和android3.1中得到了极大的发展,他们可以展示一些应用的常用信息或者一些相关的信息到桌面上,标准的Android系统镜像中有很多自带的创口小挂件,例如:闹钟、音乐等Figure 1. Example app widgets in Android 4.0.本文将描述怎么去设计小挂件,以便于能很好的与其他挂件搭配的很默契,同时也会介绍一些小技巧。AppWi...
Android输入法与表情面板切换时的界面抖动问题解决方法

Android输入法与表情面板切换时的界面抖动问题解决方法

昨天琢磨了下Android的输入法弹出模式,突然发现利用动态切换输入法的弹出模式可以解决输入法抖动的问题。具体是怎样的抖动呢?我们先看微博的反面教材。 【具体表现为:表情面板与输入法面板高度不一致,从而导致弹出输入法(layout被挤压)时,同时又需要隐藏表情面板(layout被拉升),最终让界面产生了高度差抖动,所以在切换时明显会有不大好的抖动体验)】使用了解决抖动的解决方案后,效果如下: 【这样的方案明显比微博的切换更平滑】老样子,先说思路。主要我们要...
<< 31 32 33 34 35 36 37 38 39 40 >>