关闭

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

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

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

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

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 ...
阅读(1944) 评论(3)

Tips of CAknForm

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

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

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

通过MEikEdwinObserver监控CEikEdwin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[译]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...
阅读(2212) 评论(4)

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

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

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

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

Symbian DBMS中的检索

DBMS方面的应用中检索是必不可少的操作,通常我们习惯使用SQL来进行检索,就像下面这样: //SQL keywords definitions_LIT(KSelect, "SELECT ");_LIT(KDelete, "DELETE " );_LIT(KFrom, " FROM ");_LIT(KWhere, " WHERE ");_LIT(KEqual, " = ...
阅读(1800) 评论(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的大...
阅读(2053) 评论(3)

Series60 2nd应用程序间的通信

 通过Symbian OS的Application Architecture Services可以进行应用程序间的通信,主要用到的类包括:TApaTaskList和TApaTask。TApaTaskList:用于访问设备中正在运行的任务。TApaTask:表示设备中某个运行的任务,通过与程序关联的窗口组(window group)标识。 发送消息端:使用TApaTaskList...
阅读(2123) 评论(2)
27条 共2页1 2 下一页 尾页
    个人资料
    • 访问:66178次
    • 积分:951
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:0篇
    • 译文:7篇
    • 评论:59条
    文章分类
    最新评论
    友情链接