自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Android 使用JNI的项目通过Proguard混淆后程序异常的问题

最近有个Android的项目使用了JNI机制,在最后打包并使用Proguard混淆release测试发现程序异常,由于混淆后的代码不能调试,也没看到任何异常的log,网上查到Proguard混淆可能把JNI相关的class也混淆掉,特别是JNI中回调的方法,为了验证问题,通过dex2jar等工具反编译后确实看到JNI回调的class被混淆了,解决这个问题很简单,打开工程目录下的proguard.c

2012-06-06 08:55:50 7131

原创 Series 60第三版上提取消息的附件

S60 3rd上的MTM框架提供了MMsvAttachmentManager(附件管理器)这个接口类管理各种不同消息的附件,它把操作各种附件的实现交给各MTM,使用者只需要简单通过附件管理器提供的方法就可以操作消息的附件。附件管理器基于CMsvAttachment管理各类型的附件,而CMsvAttachment是消息框架中提供的用来表现任何类型附件的对象,通过它不用实际加载或检索附件就可得到附件的

2008-11-14 15:06:00 1963 3

原创 S60第三版上启动浏览器并打开指定网页

我们通常使用下面的代码启动浏览器并打开指定网页: void OpenUrlL(const TDesC& aUrl){ if(aUrl.Length()   return;  HBufC* param = HBufC::NewLC( aUrl.Length() + 8 ); param->Des().Format( _L( "4 %S" ),&aUrl );  // Wap Browsers

2008-03-25 15:24:00 2280 3

原创 Tips of CAknForm

1.动态更新弹出列表CAknForm上使用的弹出控件是CAknPopupFieldText,但它只提供了查询列表项的方法(const MDesCArray* MdcArray() const;),由于是常量对象,所以不能修改其中的内容。另外还有一个设置列表项的方法SetQueryValueL(MAknQueryValue* aValue)被置为私有方法,同样不能使用。通过查看它的基类CAknP

2007-12-23 12:54:00 1821 3

原创 通过CMsvSession获取子条目(Entry)ID时进行过滤和排序

在使用CMsvSession::GetChildIdsL()获取子条目时可以通过CMsvEntryFilter进行过滤和排序,CMsvEntryFilter提供了下面几种过滤方法:通过Entry的修改时间过滤void SetLastChangeDate(const TTime& aLastChange);DescriptionSets the last date change fo

2007-09-27 16:53:00 2117

原创 通过MEikEdwinObserver监控CEikEdwin

CEikEdwin提供了SetEdwinObserver()和 AddEdwinObserverL()方法用来设置和添加标准编辑框CEikEdwin的观察器,通过派生并实现MEikEdwinObserver中的纯虚函数HandleEdwinEventL()就可以获得编辑框的一些标准事件,下面的代码展示了具体的实现方法:// INCLUDES#include #include  //for ME

2007-09-13 15:12:00 2249 1

原创 指定S60程序图标的显示位置

S60的安装程序可以使应用程序图标显示在指定的文件夹下,如果程序指定的文件夹不存在,则会为程序图标创建新的文件夹。S60 2nd的程序通过AIF_DATA结构中的groupName属性指定程序图标出现在哪个文件夹下面。S60 3rd的程序通过APP_REGISTRATION_INFO结构中的group_name属性为实现这个功能:  S60 2nd:RESOURCE AIF_DATA

2007-09-04 15:33:00 2149

原创 基于Symbian OS v9平台的密码系统库

2007年8月份Symbian公开了基于Symbian OS v9平台的密码系统库,这个库可以在Symbian开发者网站下载,它可以用在S60 3rd或者UIQ 3 SDK上,里面包含了对称和非对称加/解密方法以及基于密码的加密和解密方法。使用这个库只需要把安装包中的文件放到指定目录就可以了,在为真机打包时并不需要打包其它库文件。里面包含的算法有:3DES,DES,AES,RC4,RC2,

2007-08-28 16:05:00 3051 5

原创 Series 60 2nd/3rd上处理HTTP通讯中302跳转的方法

在使用Symbian提供的HTTP引擎时发现,在网络返回302跳转消息时获取跳转的URL为空(”Location”),这种情况在Series 60 2nd和3rd都存在。要解决这个问题需要首先了解一下HTTP引擎本身提供过滤机制(Filter),这种机制可以为实际应用中的各种HTTP消息响应机制提供支持,通过这个机制可以为HTTP引擎添加/删除某个过滤器,当然我们也可以实现自己的过滤器。之所以取到

2007-08-28 11:05:00 2329 2

原创 Series 60 2nd/3rd隐藏应用程序图标

Series60 2nd和3rd平台的应用程序都可通过设定应用程序注册结构的hidden属性隐藏应用程序图标,但是这两个平台使用的结构不一样,这个结构所在的文件名通常是xxxxxx_reg.rss: Series 60 2nd: RESOURCE AIF_DATA{    app_uid= 0x0000000;   //app uid    num_icons=2;    embeddab

2007-08-24 15:26:00 1962

原创 以指定形式格式化小数到描述符

可修改的描述符基类TDes提供了Num(TReal aVal,const TRealFormat& aFormat)方法用来把小数转换成字符串的形式,并可以通过TRealFormat指定格式化的形式,下面的代码展示了几种常用的形式,其它信息可以参考SDK » Developer Library » API Reference » C++ API reference » Character Repr

2007-08-22 15:53:00 1297

原创 使用RHTTPTransaction后产生CONE 36 Panic的解决办法

当应用程序只使用RHTTPSession和RHTTPTransaction来进行HTTP操作,那么在模拟器上的程序退出后会产生CONE 36的panic,通过SDK可以找到对应的说明“Open handles were found during application shutdown”也就是说程序在退出时还有系统资源没有释放(R类),那么产生问题原因是什么呢?分析程序的整个流程可以发现:应用

2007-08-16 15:31:00 2378

原创 Series60 2nd/3rd平台上序列化TTime对象

当程序的配置文件数据项比较多,类型比较多时通常使用二进制的形式来保存数据,RReadStream和RWriteStream提供了多种数值型和描述符类型的输入输出方法,但是其它基本类型就需要自己处理一下了,比如TTime,Symbian系统中使用一个64位整型来保存日期和时间,这样当序列化TTimer对象是就可以取出这个64位数值进行保存了,可是接下来会发现RReadStream和RWriteStr

2007-08-10 15:48:00 1843

原创 Symbian OS v9上信息摘要算法的实现(MD5/SHA1)

在涉及安全方面的应用时我们通常都会用到数字签名技术,并且大多都是通过MD5或SHA1信息摘要算法实现,在Series 60 2nd及以前的版本没有公开这方面的API,我们只能按照RFC文档上的C语言算法实现进行移植, 当然移植起来并不困难.Symbian OS v9发布后使事情变得更简单了,它公开了一些安全方面的API,下面就以CMD5为例展示如何进行MD5信息摘要: void GetMs

2007-08-09 17:46:00 2772 1

翻译 [译]Series 60 2nd---压缩Symbian C++可执行文件

 版本:1.02004年9月发布于www.forum.nokia.com翻译自Forum Nokia Technical Library 在所有基于Symbiani OS v7.0s(Series60第二版,Series80第二版和Nokia7710)的设备上可以通过压缩程序应用的可执行文件来节省宝贵的磁盘空间。可执行文件包括GUI应用程序文件(.APP),动态链接库文件(.DLL

2007-08-03 21:36:00 2572 3

原创 Series 60 3rd上绘图时设置字体的大小

通常我们在绘制文字时都是使用CEikonEnv提供的NormalFont(),AnnotationFont(),TitleFont()等字体,有的情况需要调整字体的大小,下面的代码演示了如何设置字体大小的方法:void  CEditorList3Col::Draw(const TRect& aRect) const{ CWindowGc& gc = SystemGc();  gc.Clear(

2007-08-02 14:35:00 1984 2

原创 如何在激活某个View时把简单对象(T类)做为参数进行传递

在使用Series 60 Multi-View架构时我们经常需要在view间传递数据, Multi-View架构提供了CAknViewAppUi::ActivateLocalViewL(TUid aViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage)函数用于在激活某个view时传入相应的参数。我们可以通过实现view类的DoAct

2007-07-30 16:54:00 2540 4

原创 Symbian DBMS中的检索

DBMS方面的应用中检索是必不可少的操作,通常我们习惯使用SQL来进行检索,就像下面这样: //SQL keywords definitions_LIT(KSelect, "SELECT ");_LIT(KDelete, "DELETE " );_LIT(KFrom, " FROM ");_LIT(KWhere, " WHERE ");_LIT(KEqual, " =

2007-07-26 18:08:00 2091 2

原创 Series 60 3rd---调整list box位置和大小后造成与scroll bar不一致的解决办法

 S60 2nd FP3以后标准控件中的scroll bar不再是屏幕下方的两个三角形了,而换成了类似Windows中scroll bar的样式,这种样式更直观,用户感觉确实更好.然而在移植一个项目到S60 3rd上时碰到了这个问题:调整list box位置和大小后造成与scroll bar不一致.比如:通过对list box调用SetExtent()使其不占满客户区,这时scroll bar的大

2007-06-29 19:52:00 2456 3

原创 Series60 2nd应用程序间的通信

 通过Symbian OS的Application Architecture Services可以进行应用程序间的通信,主要用到的类包括:TApaTaskList和TApaTask。TApaTaskList:用于访问设备中正在运行的任务。TApaTask:表示设备中某个运行的任务,通过与程序关联的窗口组(window group)标识。 发送消息端:使用TApaTaskList

2006-11-22 22:45:00 2405 2

翻译 我翻译的文档----Symbian基本规范:代码效率

翻译自SDK » Developer Library » Symbian OS Guide » Essential idioms » Code efficiency 概要速度和资源使用方面的代码效率总是值得关注的,本节提出的方法对Symbian平台的开发者来说是很常用的。 栈应用应用程序中的每个线程都有一个8Kb的标准栈,应当小心地使用。因此:Ø           除

2006-02-16 08:51:00 2155 1

原创 Symbian OS中的消息存储与常用操作

说明:前面消息的基本知识主要参考《Series60应用程序开发》中的有关内容,后面是前段做MTM开发中用到的代码。一、消息存储基本知识Symbian OS提供的消息传送架构基于Client/Server机制,服务器负责管理手机上的各种消息,在进行消息相关操作之前我们需要了解Symbian OS是如何组织和存储消息的。手机中的各种消息都是以数据项(Entry)形式供程序操作,数据项有4种类型,Sym

2006-01-05 16:33:00 4648 10

翻译 在Symbian OS中读取ZIP文件

在Symbian OS中读取ZIP文件       [ 原著:Antony Pranata http://www.antonypranata.com ]          [译:Beover1984 [email protected]]如今最普遍的压缩文件格式就要算ZIP了,它最开始是Phil Katz借鉴ARC格式创建的。Symbian OS提供了一个名为CzipFil

2005-12-01 17:28:00 2000

翻译 我翻译的文档----Symbian基本规范:类类型

译自Developer Library » Symbian OS Guide » Essential idioms » Class types 概要    Symbian OS上的应用程序使用4种常用的类,它们是:l         以T开头的值类,这种类不拥有任何外部对象,只是通过指针直接引用或通过句柄间接引用外部对象。l         以C开头的基于堆分配的类,这种类全部是从CBase派生过

2005-10-24 16:59:00 1862

翻译 我翻译的文档----Symbian基本规范:描述符

译自Developer Library » Symbian OS Guide » Essential idioms » Descriptors 概要    描述符既是Symbian OS中基本的东西,同时也是比较非面向对象(non-OO)和面向对象(OO)设计方法的极好的例子。    在C语言中字符串是下面这样的:     char *hello = “hello”;    上面的语句使设置一些内

2005-10-18 17:08:00 2393 3

翻译 我翻译的文档----Symbian基本规范:命名约定

译自 Developer Library » Symbian OS Guide » Essential idioms » Naming conventions 概要Symbian OS上的应用程序使用一组标准的约定来命名类(class)、结构(struct)、变量(variable)、函数(function)、宏(macros)、枚举(enumeration)和常量(constant)。本主题解释

2005-10-17 14:45:00 2011 1

翻译 我翻译的文档----Symbian基本规范:静态数据

静态数据译自Developer Library » Symbian OS Guide » Essential idioms » Static data DLL中的可写静态数据Symbian OS是基于ROM来处理程序的。DLL是通常是存储在ROM中的(运行也是在ROM中),所以它是不可写的。虽然有时把DLL装入RAM中运行,但Symbian OS仍旧假定DLL不可写。因此Symbian OS中的D

2005-10-13 15:31:00 1913

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除