BREW静态变量注意事项

前几天,在BREW程序中使用全局变量,在模拟器上运行的时候,模拟器报告Unknow Error(1)的错误,经过检查,文件名,clsid等都没有问题,在模拟器上调试,发现甚至都没有执行入口函数。看来是在系统运行环境的初始化问题上。想到前段时间mtk程序在全局变量的地方,不能调用内存分配,就决定先检查一下这方面。

继续阅读BREW静态变量注意事项

BREW中使用静态变量(2)

原来的文章中,网友wtyqm提到了elf2mod工具,使用这个工具的话,可以使用全局变量和静态变量,由于项目关系,一直未做测试,所以一直以来,都不做保证。最近呢,由于项目关系,又回归了Brew,而且,项目中变态的喜欢使用static,就决定试一下了。不过,在链接的过程中,需要注意一下,就是把链接的参数添加上”-reloc -split”,其他的什么ropi -rwpi之类的,不用做修改。

这篇文章算是对那篇文章的一个回应。在查找当时的评论的时候才发现,已经过了将近1年了。原来的时候,1年的项目经过整理打包,要将近1张光盘的样子,但最近几年似乎懒了很多。

经过这么多年的各种平台开发的历炼,现在写程序早就很自然的开始不用全局变量或者静态变量了,不过,很是怀念写C程序时的那份悠闲和舒坦了。

BREW中使用静态变量

之前有提到内存管理器,并未提到如何使用;长期以来,由于BREW执行文件格式的限制,无法使用静态变量和全局变量,关于如何打破这一限制,可能也有提到过。
首先来说静态变量的必要性,如果可以使用的话,我们就可以不用为程序中的某个变量该放在内存中的哪个位置而发愁了,我们可以集中力量解决某个问题,而不用考虑变量可不可用的问题。
理想总是完美的,目前所谓的解决办法是两个,一个是完美的,一个是不完美的。
先说说完美的解决办法,就是换编译器,将平时使用的ADS编译器,换成gcc编译器,通过编译脚本的控制,可以使用c++中的try..catch机制,静态变量,浮点运算等等,几乎没有限制,可以说是完美的,这种方法的一个缺点就是编译出来的容量太大,在我这边不管我如何的修改编译参数,我都无法使它保持和ADS差不多类似的容量。项目到最后需要减小容量的时候,最无奈的就是减小执行文件的容量。
继续阅读BREW中使用静态变量