- 博客(138)
- 资源 (25)
- 收藏
- 关注

原创 jni学习之三--数据传递
现在很多公司做产品,一款产品往往存在很多平台,比如有安卓、苹果、黑莓、塞班、wp等。这些平台都要实现的话,往往需要很多人力和财力,而且质量可能也不高,于是常见的方式就是做中间件来适配这些平台。我们只要一个中间件平台,将这些平台共同需要的功能抽到中间件去实现。上面这些平台开发的语言不尽相同,综合效率和通用性我们一般都是选择C/c++来实现这个中间件,所需要注意的就是适配的问题。对苹果、黑莓、塞班等还
2013-09-02 17:54:04
4130

原创 CSipSimple-主界面的分析
/** * Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr) * This file is part of CSipSimple. * * CSipSimple is free software: you can redistribute it and/or modify * it under
2013-06-28 18:14:59
2996

原创 csipsimple源项目的下载配置
1、进入官网www.csipsimple.com,选择source选项卡,可以看到下面的提示:# Non-members may check out a read-only working copy anonymously over HTTP.svn checkout http://csipsimple.googlecode.com/svn/trunk/CSipSimple/ cs
2013-06-28 16:51:09
2008

原创 CSipSimple--简介
该项目将允许Android设备在本地使用SIP。它依赖于 sip协议栈项目。支持的功能: SIP通话和即时讯息 Android的集成与重写和过滤规则 编解码器:PCMU/(又名G711U/年);speex的G722;GSM; ISAC;silk;G729;AMR(取决于器件)作为额外的插件:OPUS;G726,G722.1音频编码
2013-06-28 16:09:44
2236

原创 Ubuntu环境 android设备调试解决方案
1、lsusb找到设备IDroot@ubuntu:~# lsusbBus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 003 Device 001: ID 1d6b:0002 Li
2013-06-19 16:05:14
849

原创 git 常用命令备份
Git配置git config --global user.name "cnhans" git config --global user.email "cnhaixiang@gmail.com"git config --global color.ui truegit config --global alias.co checkoutgit config --global alias
2013-06-17 17:56:28
937

原创 修正PJSIP挂不断电话的问题
A呼叫B的过程中,如果B已经接通了电话,但是200 ok还未回到A这方,但这时A挂断电话,会出现一、A发送CANCEL到B。二、A收到INVITE的200 ok,回复ACK,并将通话置为接通状态三、B接收到CANCEL,回复200 ok,但接着不会发送487(正常的CANCEL过程参考http://yeyingxian.blog.163.com/blog/static/344712
2013-06-06 12:16:00
3231

原创 CSipSimple拨打电话机制分析
CSipSimple是运行在android设备上的一个开源的sip协议应用程序,本文其中的拨打电话机制进行大致分析。项目中,拨打电话利用了AIDL方法来实现。aidl是 Android Interface definition language的缩写,它是一种android内部进程通信接口的描述语言,通过它来定义进程间的通信接口,完成IPC(Inter-Process Communicat
2013-03-14 16:42:05
4061

原创 用好android多线程问题
Android是单线程模型,这意味着Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行,所以你单纯的new一个Thread并且start()是不行的,因为这违背了Android的单线程模型。那么如何用好多线程呢?总结一下: 事件处理的原则:所有可能耗时的操作都放到其他线程去处理。 Android中的Main线程的事件处理不能太耗时,否则后
2012-07-06 14:11:15
1917
1

原创 android应用开发设计模式之策略模式
策略模式: 指对象有某个行为,但是在不同的场景中,该行为有不同的实现演算法。 新建一个轮胎接口:package com.jindegege.strategy_interface;public interface tyre_interface { public String print_tyre_line();// 显示出轮胎的痕迹}
2012-02-27 11:26:32
1008

原创 android应用开发设计模式之外观模式
下面我们来学习下外观模式外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。 新建一个Car类package com.jindegege.car;public class Car { public String start() { return "车子已启动"; } public String check_stop() {
2012-02-27 10:19:01
1112

原创 android应用开发设计模式之代理模式
设计模式在软件设计中非常重要,目前发展中有23种模式,在android(java)中我们也有必要对其有一定的了解.在后面的学习中,我也学习总结一下,希望大家批评指正.首先我们看看代理模式.我们以游戏中的例子进行分析. 代理模式:对一些对象提供代理,以限制哪些对象去访问其它对象。package com.jindegege.service; public inter
2012-02-24 17:03:16
1057

原创 android应用开发设计模式之原型模式
下面我们来学习下原型模式原型模式:用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。新建赛车的接口:public interface car_interface { public void start(); public void stop();}新建宝马汽车的实现类:package com.jindegege.car;import com
2012-02-24 17:00:13
1024

原创 android之抽屉布局应用
我们有时后希望在一个界面中显示另外一个布局,但是又要不需要占用太多布局空间,这个时候我们可以考虑用到抽屉布局,这个名词大家可以充分发挥能动想象,相信通过下面的介绍大家一定可以对这种方式有所了解.好了,直接上一个简单的小项目.1、首先我们建一个主activitypackage com.jindegege.activity;import com.jindegege.service.
2012-02-24 11:37:12
1300

原创 android分页查询功能工具类的实现
在一个项目中,常常需要频繁的分页,所以有必要实现一个封装的类来统一管理实现。首先看下效果图: 从上图我们可以看出,这里是将listview中的数据通过底下的分页工具实现分页显示。那我们接下来先贴出代码:1、实现布局,这里有两个布局文件,第一个主布局文件main.xml<RelativeLayout xmlns:android="http://schemas.android
2012-02-23 16:54:17
2140
1

原创 android 调用webservice
android端与服务器交互 一般情况下,我们可以使用SOCKET,HTTP(GET,POST)等,我们也可以使用另外一种方式,webservice,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。说白了就是一种中间件技术.我们在android客户端中,有时需要一些库,比如XFire,Axis2,CXF等等来支持访问We
2012-02-17 17:51:54
6343
3

原创 使用GPS定位
在开发与地理位置相关时,经常需要用到经纬度,因为这个的位置比较精确。然后可以转换成我们需要的数据。直接列出开发实现步骤:1、业务层实现,通过这个代码可以获得经纬度:package org.Base.Utils;import android.content.Context;import android.location.Criteria;import android.loc
2012-02-07 09:40:27
888

原创 使用ViewHolder模式来提高自定义adapter的效率
ViewHolder不是Android的开发API,而是一种设计方法,就是设计个静态类,缓存一下,省得Listview更新的时候,还要重新操作。在自定义adapter时,我们得到view时可以用这是最慢的加载方式,每一次都重新定义一个View载入布局,再加载数据。我们可以用下面两种方式,先看第一种:这种方式又可以提高50%的效率,定义了一个ViewHolder,将arg1的
2012-02-03 09:47:30
1100

转载 android面试基础总结
3G,全称为3rd Generation,中文含义就是指第三代数字通信。所谓3G,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统。 3G只是一种通信技术标准,符合这个标准的技术有WCDMA、CDMA2000、TD-SCDMA三种制式。中国联通使用的是WCDMA(世界上大部分 3G网络都采用的是该标准) ;中国电信使用的是CDMA2000 (日、韩和北美使用);中国移动使用的是具
2012-01-27 17:29:48
3159
1
转载 ios总结
对于iOS以及Mac开发中常用到的一些框架,以及比较好的技术博客做了总结: 主要内容如下: UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 其他动画 网络相关 网络连接 网络测试 图像获取 网络聊天 网络测试
2016-09-13 18:00:37
5142
1
转载 iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要。(包括:iPhone4/4s,iPhone5/5s,iPhone6/6s,iPhone 6p/6ps)。在iPhone6出现以前,我们接触的iPhone屏幕只有两种尺寸:320 x 480和320 x 568。所以在那个时候使用传统的绝对定位(Frame)方式进行界面控件的布局还是比较轻松的
2016-03-02 14:09:41
4936
转载 cocoa pods
在 上一篇文章中,已经介绍过CocoaPods的几条基本命令。 pod setup用于初始化本地第三方库的Spec描述文件,所有的spec文件存都存放在 ~/.cocoapods目录中。 pod install用来安装或删除Podfile文件声明中的第三方依赖库。下面继续介绍其它一些命令。 $ pod list#
2016-01-22 16:38:40
3426
转载 android小项目
http://www.itlanbao.com/forum.php?mod=viewthread&tid=45&fromuid=1
2015-01-27 14:09:19
3557
转载 苹果资料大全
目录1、苹果官方文档2、邮件列表3、论坛4、网站5、博客6、大会7、播客和录像 正文1、苹果官方文档构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程:Start Developing iOS Apps Today构建Mac OS X程序:下面这篇文章介绍了Mac OS X开发的过程:Start Developi
2014-03-06 14:48:14
4572
转载 iOS 5 Storyboard 入门-2
来自Ray: 这是 iOS 5盛宴 中的第二篇教程, 这篇教程是我们的新书 iOS 5 By Tutorials 的一个免费预览章节, Matthijs Hollemans 写了这个章节,也是 iOS Apprentice Series 的作者这篇教程来自iOS 教程团队成员 Matthijs Hollemans, 一个资深的iOS开发者和设计师如果你想了解关于 i
2014-02-27 17:52:24
4183
转载 iOS 5 Storyboard 入门-1
来自Ray: 这是 iOS 5盛宴 中的第二篇教程, 这篇教程是我们的新书 iOS 5 By Tutorials 的一个免费预览章节, Matthijs Hollemans 写了这个章节,他也是 iOS Apprentice Series 的作者这篇教程来自iOS 教程团队成员 Matthijs Hollemans, 一个资深的iOS开发者和设计师Storyboar
2014-02-27 17:47:13
3757
原创 IOS面试
1.Difference between shallow copy and deep copy? 浅复制和深复制的区别? 答案:浅层复制:只复制指向对象的指针,而不复制引用对象本身。 深层复制:复制引用对象本身。 意思就是说我有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源 还是只有一份,那如果我们对A
2014-02-27 10:18:56
3723
原创 oc特点总结
Objective-C与其它面向对象有着明显的不同,它有这自己鲜明的特色,特点:兼容性、字符串、类、方法、属性、协议和分类。1. 兼容性Objective-C可以说是一种面向对象的C语言,在Objective-C的代码中可以有C和C++语句,它可以调用C的函数,也可以通过C++对象访问方法。2. 字符串Objective-C通常不使用C语言风格的字符串。大多数情况下是使用Found
2014-01-24 11:48:21
4304
原创 隐藏API和Internal包的使用
本文介绍不通过反射和编译源码使用隐藏API和Internal包。首先我们要明白为什么隐藏API(有@hide标记)和Internal包不能使用。当我们使用android的SDK进行开发的时候都会用到一个非常重要的jar文件--android.jar(SDK_DIR/platforms/platform-X/android.jar,X是API等级)。这个包中移除了所有被标记的尾@hide
2013-12-05 22:04:37
4002
原创 ubuntu svn命令行下使用
1、*将文件checkout到本地目录svncheckout path(path是服务器上的目录) 例如:svncheckout svn://192.168.0.1/xxx/x 简写:svn co*2、*往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add
2013-08-13 17:19:52
3479
原创 用系统libsqlite.so 进行ndk 开发
不像liblog.so,android 没有直接开放libsqlite.so给外部使用虽然Android提供了访问 sqlite的Java接口,但现在需要在ndk中使用 c 语言访问sqlite。 方法有二: 第一种:使用源码 sqlite3.h, sqlite3.c。 从android源码网站下载sqlite.git库,找到这两个文件,放到项目源码中去,进行ndk编译
2013-08-09 14:22:12
3903
原创 Ubuntu 下用 Eclipse 编译调试 Android NDK 工程
一、开发环境搭建:1.首先,要给 Eclipse 安装 CDT : 选择菜单 [Help] -> [Install newsoftware...], 弹出 "Install" 窗口, 点击 Add 按钮,弹出 "Add Repository" 窗口, 在 Name: 文本框中输入 CDT , 在 Location: 文本框中输入http://download.ec
2013-08-02 18:19:19
4166
原创 shell脚本学习-为什么使用 shell 编程
shell 是一个命令解释器.是介于操作系统 kernel 与用户之间的一个绝缘层.准确地说,它也是一一种强力的计算机语言.一个 shell 程序,被称为一个脚本,是一种很容易使用的工具,它可以通过将系统调用,公共程序,工具,和编译过的二进制程序粘合在一起来建立应用.事实上,所有的 UNIX命令和工具再加上公共程序,对于 shell 脚本来说,都是可调用的.如果这些你还觉得不够,那么
2013-08-01 10:14:58
3331
原创 jni学习之二数据详解
在Java中有两类数据类型:primitive types,如,int, float, char;另一种为reference types,如,类,实例,数组。 注意:数组,不管是对象数组还是基本类型数组,都作为reference types存在,有专门的JNI方法取数组中每个元素。1、primitive types (基本数据类型)映射参见下表:
2013-07-11 16:44:32
3215
原创 jni学习系列之一
要素 :1、 该函数大全是基于C语言方式的,对于C++方式可以直接转换 ,例如,对于生成一个jstring类型的方法转换分别如下: C编程环境中使用方法为:(*env) ->NewStringUTF(env , "abc") ; C++编程环境中(例如,VC下)则是: env ->NewStringUTF( "
2013-07-11 16:37:51
3492
转载 关于typedef的用法总结
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我自己写的内容)。用途一:定义一种类型的别名,而不
2013-07-10 09:51:45
3236
原创 JNI之C语言简单回顾
一.C语言基本数据类型: c语言中 char, int, float, double, signed, unsigned, long, short and void// java 中的8大本数据类型和他们的长度 // byte 1 char 2 short 2 int 4 long 8 double 8 float 4 boolean 1// 在c99标准的c语言.没有
2013-07-09 17:01:20
3435
原创 搭建Android源码编译环境及编译常见错误
1.安装Ubuntu 10.10 可选择使用Wubi安装。2.安装Python Ubuntu 10.10 已经安装了2.6版。3.安装JDK 更新软件库: sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo
2013-07-04 14:30:38
3725
原创 Ubuntu下图形界面SVN客户端-RabbitVCS的安装
1.首先添加源:[plain] sudo gedit /etc/apt/sources.list 加入:[plain] ##rabbitvcs deb http://ppa.launchpad.net/rabbitvcs/ppa/ubuntu lucid main 2.更新源[plain] sud
2013-07-03 17:13:13
1905
原创 Ubuntu解决Eclipse需要JRE的问题
Ubuntu解决Eclipse需要JRE的问题,首先,建议你将eclipse文件夹复制到../usr/local里,因为这里好像是专门存放软件的文件夹。打开 终端,输入命令../usr/local/eclipse/eclipse -vm /usr/java/jdk1.6.0_43/bin/java就可以打开eclipse了。最后,你需要配置一下eclipse的JRE,否则以后你每次
2013-07-03 12:19:06
1167
腾讯交友APP商业计划书
2014-02-20
腾讯微博Android客户端开发课程文档(附源代码)
2012-02-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人