`
VIP庚
  • 浏览: 220966 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
  最近在弄语音通话,当在局域网测试程序的时候,tcp和udp数据收发没有任何问题,客户端A传输udp数据给服务器,服务器再将数据通过udp转发给客户端B。但将服务器部署到云服务器上的时候就出现了问题。   服务器可以收到客户端A发来的udp数据,但客户端B收不到服务器转发的消息。   在网上找了些资料得出结论,公私网之间UDP传输根本不需要什么端口映射,也不需要配置路由器什么的。   客户端可以通过外网服务器的ip地址和端口号,向服务器发送数据,而客户端在内网,服务器必须要知道客户端的在外网ip和端口号才能向客户端发送udp数据。所以客户端必须先发送udp数据到服务器,这样服务器才能知道其地址 ...
  最近无意间看到一篇文章,解决了我很久以前的困扰   简单介绍一下SnackBar: SnackBar是 Android Support Library 22.2.0 里面新增提供的一个控件,是Toast的威力加强版. 优点: 1. 配合CoordinatorLayout使用,SnackBar可以被Swipe手势划走; 2. setAction功能.在SnackBar上可以设定一个按钮.Inbox里面UNDO就是通过SnackBar的setAction来实现的; 具体使用方法很简单,网上有很多例子,这儿就不介绍了 在谷歌 Material Design设计规范中这样写道: 短文本   ...
  最近在做操作联系人数据这一块,当读取系统表中的联系人的数据时,是按照联系人添加的顺序读取的,所以要对读取后的数据按拼音进行排序 一 导入 pinyin4j-2.5.0.jar包  地址http://pinyin4j.sourceforge.net/ 这个包是将汉字转化成拼音的工具包 二 自定义数据比较器Comparator Contects是联系人类 import net.sourceforge.pinyin4j.PinyinHelper; import java.util.Comparator; /** * 对联系人 Contacts的name 的拼音排序 * Cr ...
  最近在开发心率方面,要绘制心率图,准备自己写自定义view来实现,查找资料时发现了一款基于Android的开源图表库 -- MPAndroidChart 在github上 已经commits 1500次,经常在维护,想必功能还是很完善,bug很少的。   github地址:https://github.com/PhilJay/MPAndroidChart   可以通过导入库的方式来将该库引入自己的项目   也可以在这里 https://github.com/PhilJay/MPAndroidChart/releases 通过下载最新mpandroidchartlibrary-2-0-8.ja ...
  最近项目需要通过电话号码查询归属地,决定直接在本地sqlite的数据库进行查询,没必要去访问网络(虽然最后还是决定还是将数据库放在服务器上 )   一 首先先将外部的sqlite数据库放入assets文件夹下面   注意:   必须是sqlite数据库(XXX.db),如果是access(XXX.mdb)的必须进行转换,网上有一些数据库转换器,或者使用SQLite Expert   二 创建AssetsDatabaseManager用来获得操作数据库的SQLiteDatabase package com.ld.qmwj.dao.phonenumserach; import ...
  在布局文件中经常看到 xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" 这是在申明命名空间,View中要想自己生命的属性有意义,则需要为属性加一个命名空间前缀,如"android"或者"app"。   我们可以定义自己的命名空间来使用自定义属性 步骤: 1 申明命名空间: xmlns:zsg="http:// ...
  上周push项目到github总是失败,整了2天,通过万能的百度,尝试了n种方法也没成功,最后还是通过Google在外国网站上找到了答案,学英语还是有点用的 错误提醒: Push failed          Failed with error: fatal: The remote end hung up unexpectedly          fatal: The remote end hung up unexpectedly          error: RPC failed; result=56, HTTP code = 200 解决办法:   在git bush中分别 ...
觉得挺好的文章,可以解决加载的图片过大导致OOM 原地址:http://www.cnblogs.com/manuosex/p/3661762.html Android oom 有时出现很频繁,这一般不是Android设计的问题,一般是我们的问题。   就我的经验而言,出现oom,无非主要是以下几个 ...
Android 线程、组件之间通信可以通过Handler消息处理器,BroadCast广播,Service服务等。   这儿介绍的EventBus是一款针对Android优化的发布/订阅的事件总线,可以替代上述的方法,进行线程之间传递消息.优点是开销小,代码更优雅。   EventBus主要是基于观察者模式,特点:   可以向不同的线程中发布事件,在ThreadMode 枚举中定义了4个线程,只需要在事件响应函数注解上加上ThreadMode ,则该事件响应函数就会在对应的线程中执行,ThreadMode定义的4个线程类型如下:   1、PostThread:事件响应函数和事件发布在同一 ...
由于最近要应付面试,所以把几个常见的排序方法有复习了一下。 一 插入排序 看见过一个很形象的比喻:   插入排序算法是一个对少量元素进行排序的有效算法。插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左进行比较,无论什么时候手中的牌都是排序好的。 原理:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 /** * i 前方的数 ...
  可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。    Fragment可以通过动态加载和静态加载,这里静态加载就不介绍了(直接在xml文件里声明)    动态加载是通过FragmentManager对Fragment进行了动态的加载 FragmentManager fm = getFragmentManager(); // 开启Fragment事务 FragmentTransaction transaction = ...
  什么是沉浸式设模式?沉浸模式计就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对“隐形”的界面来达到把用户可视范围最大化地用到内容本身上。   通过改变通知栏颜色来达到沉浸模式,这里简单介绍一下一个开源库SystemBarTint的使用(适用于Android系统4.4及其以上的版本)。 效果如图: SystemBarTint链接:https://github.com/jgilfelt/SystemBarTint 在github中将其下载后,将文件夹中的library文件夹导入到studio作为Module(说实话,我弄了好久才导入成功,不同于导入.jar包那么 ...
一 Struts使用步骤 1 导入Struts jar包 2 在WEB-INF中新建struts-config.xml <struts-config> <form-beans> <form-bean name="loginForm" type="com.zsg.form.LoginForm"></form-bean> </form-beans> <action-mappings> <!-- 请求进入ActionServlet后,再通过path来确定进入 ...
这个记录的只是个人在git的学习中的自己的一些感悟  不适合初学者用来学习 要详细的学习推荐:http://blog.jobbole.com/78960/ Android Studio中使用git:http://segmentfault.com/a/1190000003711924 git远程操作命令详解:http://www.ruanyifeng.com/blog/2014/06/git_remote.html 一 设置git git版本控制项目的根目录 方法一: 先在Git Bash上定位到项目的目录 在将该目录设置为git的根目录(代码 :git init) 方法二 :在Androi ...
  刚才翻看文件夹时无意中发现了以前无聊时做的一个桌面画图工具,现在回想起来发现当时写时的一些技术已经记得不是太清楚了,记得当时查了很多资料,也花费了大量的时间,当最后完成时还是有那么些小小的得意。   废话不多说了,介绍下软件吧。   这个桌面画图工具可以实现对当前桌面的截屏,然后在上面标记,这里忙可以切换画笔颜色,类型。通过ctrl+s对绘制的桌面进行保存。通过ctrl+鼠标滚轮可以对桌面进行放大与缩小,ESC退出画图。里面有很多知识点适合初学者去学习,注释也很详细。   具体的细节和技术我也懒得介绍了,有兴趣的可以到下面地址去下载源码   http://download.csdn.net/ ...
Global site tag (gtag.js) - Google Analytics