- 博客(101)
- 问答 (1)
- 收藏
- 关注
转载 Android Activity、Window、View三者之间的关系
一、简述如何将Activity展现在手机上Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的换句话说:activity就是在造PhoneWindow,显示的那些view都交给了PhoneWindow处理显示1、在Activity创建时调用attach方法:2、attach方法中会调用PolicyManager.makeNewWindo
2017-09-07 14:06:03
524
1
转载 Android ListView
ListView的工作原理首先来了解一下ListView的工作原理(可参见http://mobile.51cto.com/abased-410889.htm),如图:1、如果你有几千几万甚至更多的选项(item)时,其中只有可见的项目存在内存(内存内存哦,说的优化就是说在内存中的优化!!!)中,其他的在Recycler中2、ListView先请求一个type1视图(getView)然后
2017-09-04 17:54:33
367
转载 Java 引用
1 临界状态的处理Ø 临界状态:当缓存内容过多,同时系统,内存又相对较低时的状态;Ø 临界状态处理:1. 低内存预警:每当进行数据缓存时需要判断当前系统的内存值是否低于应用预设的最低内存;如果是,提示用户应用将在低内存环境下运行;Tips:Intent.ACTION_DEVICE_STORAGE_LOW;设备内存不足时发出的广播,此广播只能由系统使用,其它AP
2017-08-24 16:52:45
250
原创 web浏览器无插件播放实时音视频技术---WebRTC2SIP与第三方SIP网关对接(五)
1、概述2、WebRTC、SIP网关的SIP信令交互3、信令兼容的常见问题以及解决方案
2017-07-31 15:26:05
13074
7
原创 web浏览器无插件播放实时音视频技术---SIPML5参数配置(四)
1、概述2、SIPML5参数设置3、SIPML5、WebRTC信令交互
2017-07-31 15:17:18
3071
2
原创 web浏览器无插件播放实时音视频技术---WebRTC2SIP(三)
1、WebRTC2SIP概述2、WebRTC2SIP环境搭建3、WebRTC2SIP配置文件4、SIPML5参数设置5、SIPML5、WebRTC、SIP网关的SIP信令交互6、WebRTC2SIP常见错误
2017-07-31 14:49:01
11127
转载 Android Fragment
1、Fragment概述Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段!想想,如果一个很大的界面,我们 就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来
2017-07-29 11:51:40
505
原创 web浏览器无插件播放实时音视频技术---方案选择(一)
如今,很多网站进行观看直播视频时都需要下载插件,现介绍一种不需要下载插件就能直接在浏览器上播放实时音视频的方案一、浏览器WebRTC支持WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌在2010年收购Global IP Solutions公司而获得一项技术。该技术基于WHATWG协议,目的是通过浏览器提供简单的JavaScript就可以达到实时通讯(Real- Tim
2017-07-23 17:19:44
9860
4
原创 Android Handler、Message、MessageQueue与Looper介绍
一、Handler、Message、MessageQueue与Looper介绍1、Message:消息;其中包含了消息ID,消息对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理Handler:处理者;负责Message发送消息及处理。Handler通过与Looper进行沟通,从而使用Handler时,需要实现handlerMessage(Message
2017-07-12 16:03:13
290
原创 Android ContentProvider
一、ContentProvider介绍tentProvider,根据需要重写其内容方法(6个方法):onCreate()创建内容提供者时,会调用这个方法,完成一些初始化操作;crud相应的4个方二、自定义ContentProvider1、定义类继承ContentProvider,根据需要重写其内容方法(6个方法):onCreate()创建内容提供者时,会调用这个
2017-07-10 19:20:53
405
原创 Android Intent
一、Intent简介 Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。activity、service和broadcast receiver之间是通过Intent进行通信的,而另外一个组件Content
2017-07-10 11:43:59
267
原创 Android BroadcastReceiver
一、BroadcastReceive定义BroadcastReceiver的作用主要是用来监听系统或者应用发出的广播信息,然后根据广播信息作为相应的逻辑处理;说通俗点其实上就是一种全局监听器,要来实现系统中不同组件之间的通信。有时候也会用来作为传输少量而且发送频率低的数据,但是如果数据的发送频率比较高或者数量比较大就不建议用广播接收者来接收了,因为这样的效率很不好,因为BroadcastRec
2017-06-26 14:24:09
300
原创 Android Activity
一、Activity生命周期1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用o
2017-06-19 17:30:37
287
原创 Java多线程
1.(wait/notify/sleep/yield/join)synchronized, wait, notify结合:典型场景生产者消费者问题1、sleep方法 sleep方法的作用是让当前线程暂停指定的时间(毫秒),需要注意的是其与wait方法的区别。最简单的区别是,wait方法依赖于同步,而sleep方法可以直接调用。而更深层次的区别在于sleep方法只是暂时让出C
2017-06-19 17:20:44
232
原创 Android Service
Android Service 1.Service概念Service定义:通常service用来执行一些耗时操作,或者后台执行不提供用户交互界面的操作,Service与Thread:Service运行在主线程里的。Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子
2017-06-05 14:46:16
349
原创 Webrtc WebSocket实现音视频通讯
一般的浏览器都集成了webrtc的功能,因此是不需要webrtc服务器就可以在局域网内进行点对点的音视频通讯。本文主要利用websocket进行通讯,支持个google浏览器,无法兼容Firefox浏览器,同时对于Tomcat要求8.0以上,同时由于最新的webrtc要么用localhost访问,如果要用IP访问,则只能用https协议进行访问,因此这些都是需要解决的问题,本文只是一个demo
2017-06-01 15:44:31
16248
4
原创 Android AIDL
一、AIDL介绍aidl是 Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。Aidl与其他通讯的区别: “只有当你允许来自不同的客户端访问你的服务并且需要处理多线程问题时你才必须使用AIDL”,其他情况下你都可以选择其他方法,如使用Messager,也能跨进程通讯。可
2017-05-25 10:31:28
223
原创 Android Binder
1.Binder实例 Step-1. Activity使用startService()函數來啟動Service。Step-2. Activity調用bindService()来绑定Service。亦即,Activity建立与Service之间的连结(Connection)。Step-3. Activity調用IBinder接口的transact()函数,透过底层Binder D
2017-05-18 16:54:58
336
原创 Openfire集成Sip服务器
一、Openfire的Sip插件在Openfire的插件里面,有一个Sip插件,但是该Sip插件不是一个Sip服务器,只是一个Sip客户端,下面主要介绍如何在Openfire上集成一个简单的Sip服务器插件。 二、该简单的Sip服务器有如下功能1、遵守Sip标准协议2、标准Sip客户端能够注册该Sip服务器3、能够完成一次完整的呼叫流程和挂断流程4、能够对用户进行管理以
2017-05-11 14:38:33
3887
原创 WebRTC之Android客户端
一.WebRTC的Android客户端搭建1.libjingle_peerconnection_so.so2.libjingle_peerconnection.jar3.客户端源码一份(可以在github上下载) 二、相关概念介绍 1.P2P:点对点通讯;2.STUN:提供反射地址使双方可以进行P2P通讯;3.TURN:在反射地址方式失败情况下的补充方案,
2017-04-27 17:44:06
14706
1
翻译 Jingle协议详解
Jingle详解 1.介绍Jingle协议的目的是在XMPP实体间建立一对一、点对点的媒体会话,使其在进行媒体数据协商和交互时使用XMPP的信令交互。虽然Jingle协议提供了一个通用的会话管理框架,但是其设计的原始目的仅仅只是为了音视频通讯,强调的是“简单”。Jingle协议的目的不是为了建立一个完整的电话应用程序,包括呼叫等待、呼叫转发、呼叫转移、IVR系统、定位、视频会议等等。这
2017-04-14 17:08:00
6549
原创 Xmpp+openfire+smack音视频(PC和移动端)
一、XMPPXMPP协议是一种基于XML的协议,叫做可扩展通讯和表示协议,其前身是Jabber,一个开源形式组织产生的网络即时通讯协议。XMPP协议目前被IETF国际标准组织完成了标准化工作,标准化的核心结果为两部分:1、核心的XML流传输协议;2、基于XMLFreeEIM流传输的即时通讯扩展应用。XMPP官网上有基于XMPP协议的各种平台的服务器、客户端以及各种语言支持的內库,也就是说基
2017-04-13 16:13:40
7763
2
原创 利用asmack实现Openfire的C++客户端
在openfire的官网上,有支持Java语言的asmack,也有支持C#语言的XMPP,但是有些应用场景可能需要C++语言作为openfire的客户端。本篇文章主要介绍如何利用asmack来实现C++语言编写的客户端。(需要有一定的jni基础)第一步:利用Java语言和asmack可以完美的和openfire进行通讯(消息的收发),那么可以将Java平台下的该工程打包成jar包;用ecl
2017-03-30 17:48:12
1063
原创 openfire支持Android与IOS
1.openfire是一款即时通讯的服务器,可以直接在官网上下载安装文件,同时也可以下载源码进行二次开发,其源码是用Java实现的,官网上可以下载到。(http://www.igniterealtime.org/)2.asmack是供java开发平台客户端的开发包,主要用于与openfire进行通讯,可以在PC平台、Android平台、Javaweb网站开发平台都可以用,其后台代码没有差别。
2017-03-27 11:26:23
2319
原创 asmack断线重连openfire
1.加载ReconnectionManagertry {Class.forName("org.jivesoftware.smack.ReconnectionManager");} catch (Exception e1) {}2.设置重连参数ConnectionConfiguration configuration = new ConnectionConfigurati
2017-03-27 11:08:27
992
原创 asmack接收openfire的系统消息
XMPPConnection con;con.addPacketListener(pListener, new MessageTypeFilter(Message.Type.normal));PacketListener pListener = new PacketListener() {@Overridepublic void processPacket(
2017-03-27 10:59:49
511
原创 openfire插件开发-外界进行http请求
将Servlet做成一个插件,让外界不需要登录就可以进行http请求访问openfirepackage org.jivesoftware.openfire.plugin;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.Pri
2017-03-27 10:09:27
1054
1
原创 openfire插件开发-推送系统消息
private String domain = JiveProperties.getInstance().get("xmpp.domain");//获得服务器的域public void pushMessage(JID to,JID from, String body,String subject) {JID t1 = new JID("test1" +"@" + domai
2017-03-27 09:51:36
741
原创 openfire插件开发-操作数据库
public int getCount() { Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; int count = -1; try { con = DbConnectionManager.getConnection();
2017-03-27 09:50:14
544
原创 openfire插件开发-聊天记录插件
MessageFilterpackage org.jivesoftware.openfire.plugin;import java.io.File;import java.util.List;import org.jivesoftware.openfire.container.Plugin;import org.jivesoftware.openfire.container.Plug
2017-03-24 09:59:43
922
原创 openfire插件开发-Servlet插件
1.整个插件的目录2.各个文件的代码ExamplePluginpackage org.jivesoftware.openfire.plugin;import java.io.File;import org.jivesoftware.openfire.XMPPServer;import org.jivesoftware.openfire.container.Plugi
2017-03-23 14:22:40
693
原创 openfire插件开发-简单插件
1.点击项目反键,新建source folder,并建相应的插件包org.jivesoftware.openfire.plugin2.建完后在src/plugins下面会出现example文件夹,并按照如下目录新建对应的文件:3.文件介绍ExamplePlugin.javapublic class ExamplePlugin implements Pac
2017-03-22 10:21:20
506
5
转载 openfire插件编译
openfire默认编译时,是同时编译主程序和所有在plugins目录中的插件。但进行插件开发时,这样编译就太费时费力。使用ant plugins可以只编译插件,能够节省部分时间。最节省时间的编译方法为在命令行下使用ant plugin -Dplugin=xxx进行编译,其中,xxx为插件名字(生成到work文件夹下的jar和插件文件夹的名称最好和插件文件夹名一致否则会出现插件卸载不掉
2017-03-17 10:55:48
401
转载 XMAPP Openfire 开发配置,Openfire源代码配置,OpenFire二次开发配置
XMAPP Openfire 开发配置,Openfire源代码配置,OpenFire二次开发配置点击phpMyAdmin创建新的数据库(openfire源码里面有)比如这里我叫openfire 这时候将之前拷贝在桌面上的openfire_mysql.sql导入到数据库1、下载源代码:http://www.ign
2017-03-17 10:51:38
529
原创 Android天气预报软件
http://weather.51wnl.com/weatherinfo/GetMoreWeather?cityCode=101250101&weatherType=0{"weatherinfo":{"city":"长沙","city_en":"","cityid":"101250101","date":"","date_y":"2017年03月06日","img_title_single":
2017-03-06 15:36:55
3422
原创 Android wifi搜索与连接
package com.wifi.utils;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiConfiguration;import andro
2017-02-24 10:44:35
2153
原创 web前端开发语言介绍
web前端开发语言主要包含:html语言,css样式代码,javascript脚本,html5,css3,jQuery,ajax,Bootstrap,Backbone1.html语言:网页的基本标记语言,也是最基础的语言,掌握起来比较简单。2.css样式代码:是用来控制html代码如何显示的,html语言只是网页的标记,但如何更好的在网页上展示你想要的效果,由css样式来控制,建议手写cs
2017-02-05 15:47:31
17340
原创 智能家居解决方案
整个智能家居系统中(不包含视频监控),可以分为四个主要模块进行分析:1.硬件模块:每一中家用电器都对应一种智能控制硬件。其中最普遍的是智能开关和智能插座,智能开关主要进行灯光的控制,智能插座可用于各类电器的插座,空凋、电视、音响等涉及倒红外控制,因此需要有专门的转发器并且能够自主学习红外指令;还有一大类属于传感器,比如温湿度、PM、烟雾传感器、人体感应器......硬件模块中是选用wifi
2017-02-04 15:44:40
790
转载 java集合
一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直
2017-01-18 12:17:53
914
空空如也
Openfire TLS Client-initiated重协商安全漏洞
2018-10-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅