ARM
文章平均质量分 65
曹纪乾
嵌入式开发,和一些应用的开发
展开
-
如何则增大browser设置中的time out时间
Browser V01 (before 09B.10.12)请修改3个MACRO: BRA_SET_MAX_TIMEOUT_SIZE 3 //位数,默认最多3个字符 BRA_SET_MAX_TIMEOUT_VAL 300 //最大值,300秒。 BRA_SET_MIN_TIMEOUT_VAL 30 //最小值,30秒。 Browser V02(after 09B.10.12)请修原创 2012-11-05 09:15:24 · 881 阅读 · 0 评论 -
android 联系人从SIM卡导入的联系人号码是显示“其它”号码不是“手机或者电话”号码
SimContacts.java 中修改如下函数可以实现这个需求: private static void actuallyImportOneSimContact( final Cursor cursor, final ContentResolver resolver, Account account) { final NamePhoneTypePair namePhoneTyp原创 2012-11-07 09:34:06 · 1575 阅读 · 0 评论 -
关机充电如何实现短按pwrkey灭屏
目前关机充电PWRKEY实现长按开机和短按亮屏功能,灭屏是根据BL_SWITCH_TIMEOUTS时间,自动灭屏的;如果需要实现PWRKEY主动灭屏,请按照如下方法修改: alps/mediatek/platform/mt6577/uboot/mt6577_bat.c 函数mt65xx_bat_init 1、修改: if (mt6577_detect_key(BACK原创 2012-11-26 09:40:30 · 1990 阅读 · 0 评论 -
android recovery mode下使用外置T卡升级修改方法
1、请您将Recovery.fstab (mediatek\config\[Project]\)中mount point 为/sdcard的项修改为如下内容: /sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1 2、请将alps/bootable/recovery/roots.cpp 下353-357行:#else原创 2012-11-25 07:08:47 · 1319 阅读 · 0 评论 -
怎样将手机中的频率固定在某一个level
将手机中的频率固定在单核某个频率xxx的方法: echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo 0 > /sys/devices/system/cpu/cpu1/online echo 0 > /proc/mtk_hotplug/enable e原创 2012-11-26 09:41:25 · 1078 阅读 · 1 评论 -
如何通过adb shell 修改/显示 GPIO 状态
To show GPIO status: adb shell "cat /sys/devices/virtual/misc/mtgpio/pin"To change GPIO status: adb shell "echo \"-w=99:0 1 0 0 0 1 0\" >/sys/devices/virtual/misc/mtgpio/pin" 每行分别对应:原创 2012-11-26 09:42:41 · 3524 阅读 · 0 评论 -
Landscape UI on Portait LCM (竖屏横用/直屏横用)使用
1. 直屏比橫屏便宜許多 2. Qwerty keypad phone(全键盘手机),客戶普遍用”直屏橫放“的方式來实现, 但得自己承受 performance 和tearing(斜切屏) 問題. 因为使用LCM做90度Rotate,则必然出现斜切屏。3. MTK 提供tearing-free(斜切屏解决方法) 以及 good performance。无需LCM做90度 Rotate,由M原创 2012-11-12 09:58:22 · 2155 阅读 · 0 评论 -
详解Makefile 函数的语法与使用
使用函数:在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。转载 2012-11-13 09:17:53 · 1546 阅读 · 0 评论 -
C++标准转换运算符const_cast
C++提供了四个转换运算符:const_cast (expression)static_cast (expression)reinterpret_cast (expression)dynamic_cast (expression)它们有着相同的结构,看起来像是模板方法。这些方法就是提供给开发者用来进行指针和引用的转换的。其实我很早就想写这篇内容的,自转载 2012-11-12 13:51:42 · 1163 阅读 · 0 评论 -
dynamic_cast
dynamic_cast ( expression ) 该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*; 如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。 dynamic_cast运算符可以转载 2012-11-13 12:42:26 · 620 阅读 · 0 评论 -
Android的Service分析
1.先来看看What is Service?A Service is not a separate process And A Service is not a thread. 一个服务不是一个独立的进程,也不是一个线程。那Service是什么呢? 后台运行 处理耗时较长的工作 Service是一个应用程序组件 Service没有图形化界面转载 2012-11-13 09:09:17 · 562 阅读 · 0 评论 -
android的各种*.img 文件
关于android的各种disk images对android的各种disk images很好奇,一直想知道怎么去know和hack这些images,所以就有了这篇paper。用file来查看文件类型chenjian@ubuntu8:/tmp/images$ file *kernel-qemu: datalocal.img:转载 2012-12-03 09:24:12 · 1106 阅读 · 0 评论 -
android移植详解
主要介绍linux 内核启动过程以及挂载android 根文件系统的过程,以及介绍android 源代码中文件系统部分的浅析。 主要源代码目录介绍Makefile (全局的Makefile)bionic (Bionic 含义为仿生,这里面是一些基础的库的源代码)bootable (引导加载器)build (build 目录中的内容不是目标所用的代码,而是编译和配置转载 2012-12-03 09:23:48 · 896 阅读 · 0 评论 -
android ndk
Android系统中的应用程序都是用Java开发的。Android NDK使我们能够在android上使用C/C++开发的原生代码。有两个理由使用NDK: 一是合理的重用现有的代码;二是在程序中某些关键的部分提高执行效率。这里先讲几个符号的约定: - 你的Android应用程序工程的目录 - 你的ndk安装的目录捷径这里先扯一句题外话 -- 如果你不需要使用NDK开发,只是需要使用转载 2012-11-18 00:28:32 · 892 阅读 · 0 评论 -
Android: 用jni 获取MAC地址
首先来看看mac地址获取的java实现代码:public String getLocalMacAddress(Context context) { WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectio转载 2012-11-18 00:29:59 · 1932 阅读 · 1 评论 -
Android NDK 入门
一、 开发环境搭建NDK开发需要在linux下进行,因为把C/C++编写的代码生成能在ARM上运行的.so文件,需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。安装 android-ndk 开发包,这个开发包可以在google android 官网下载,通过这个开发包的工具才能将android jni 的C/C++的代码编译成库Android应用程序开发环境: 包括ecli转载 2012-11-18 00:26:53 · 667 阅读 · 0 评论 -
JNI和NDK的区别
NDK(Native Development Kit)“原生”也就是二进制android常用的开发方式是java封装的库,而这些库的底层实现是由C/C++实现,如媒体,图形库等java调用这样实现就需要用JNI(Java Native Interface)平时用的也就是google给我们封装的好的库,即底层实现用的不是Java,但都有统一的Java接口NDK的作转载 2012-11-18 00:27:42 · 567 阅读 · 0 评论 -
字符串列表的C语言实现:c_strlist
1234567891011121314151617181920212223242526272829303132333435转载 2012-11-18 00:32:39 · 2104 阅读 · 0 评论 -
如何远端调试framework?
framework的调试方式如下:1. 请在eclipse中新建一个java工程,导入framework的代码(导入的framework代码需要和手机的代码版本一致)2. 请在ddms界面查看system_process对应的TCP端口3. 请在run/Debug Configuration...菜单弹出的对话框添加一个Remote Java Application,选择第一步新建的p转载 2012-11-19 10:02:17 · 728 阅读 · 0 评论 -
android 如何开关Mediatek开发的Feature
查看文件mediatek/config/${Project}/ProjectConfig.mk,这里面有很多以 MTK_ 开头的项,其取值为“yes”或“no”,表示这个Feature 是打开或关闭的状态可以通过修改yes/no的取值,来开启/关闭相应的 Feature ,修改了ProjectConfig.mk文件后,需要重新build整个工程。 注意:feature开关从no置成ye原创 2012-11-19 10:03:46 · 1601 阅读 · 0 评论 -
android 如何调整System.img 大小,从而多内置应用
通过excel 打开:alps/mediatek/build/tools/ptgen/partition_table.xls, 表中的MT6573 no 子表,修改 11 行/G 列如默认11行:11 ANDROID YAFFS2 1500000 DD00000 200MB 204800 209715200 C800000 1可以看到11/G列为 204800 = 200 *原创 2012-11-19 10:04:22 · 3239 阅读 · 0 评论 -
const_cast
用法:const_cast (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 一、常量指针被转化成非常量指针,并且仍然指向原来的对象; 二、常量引用被转换成非常量引用,并且仍然指向原来的对象; Voiatile和转载 2012-11-18 00:10:42 · 589 阅读 · 0 评论 -
reinterpret_cast
reinterpret_cast是C++里的强制类型转换符。 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。 例如:int *n= new int ; double *d=reinterpret_cast (n); 在进行计算以后, d 包含无用值. 这是因为 reinterpret_cast 仅仅是复制转载 2012-11-18 00:10:54 · 780 阅读 · 0 评论 -
static_cast
用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转载 2012-11-18 00:10:58 · 491 阅读 · 0 评论 -
#pragma comment
#pragma comment( comment-type ,["commentstring"] ) comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。 commentstring是一个提供为comment-type提供附加信息的字符串。参数使用说明:compiler 放置编译器的转载 2012-11-18 00:12:15 · 526 阅读 · 0 评论 -
Android如何防止apk程序被反编译
作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难转载 2012-11-18 00:20:40 · 470 阅读 · 0 评论 -
如何让Android横竖屏切换时不销毁当前activity
If the configuration of the device (as defined by the Resources.Configuration class) changes, then anything displaying a user interface will need to update to match that configuration. Because Activ转载 2012-11-18 00:33:04 · 553 阅读 · 0 评论 -
在Music中长按一首歌,执行"添加到播放列表"时,屏幕会闪两次
請將 PhoneWindow.DialogMenuCallback 裡所有的用到 mSubMenuHelper 註釋掉, 就可以解決這個問題詳細修改如下 private final class DialogMenuCallback implements MenuBuilder.Callback, MenuPresenter.Callback { private in原创 2012-12-04 00:04:19 · 780 阅读 · 1 评论 -
Android提高启动速度的实现方法
首先看一下Android系统的启动流程:bootloader 引导程序kernel 内核init init初始化(这个大家都比较熟悉了,不要多说)loads several daemons and services, including zygotesee /init.rc and i转载 2012-12-04 00:04:27 · 1048 阅读 · 0 评论 -
编译错误处理noproguard.classes-with-local.dex已杀死
编译错误处理noproguard.classes-with-local.dex已杀死错误现象描述:Install: out/host/linux-x86/framework/dx.jarCopy: dx (out/host/linux-x86/obj/EXECUTABLES/dx_intermediates/dx)Install: out/host/linux-x86/bi转载 2012-11-20 09:25:09 · 912 阅读 · 0 评论 -
深入理解各种指针
一、可能的组合:(1)const char*p(2)char const*p(3)char *const p(4)const char **p(5)char const**p(6)char *const *p(7)char **const p当然还有在(5)、(6)、(7)中再插入一个const的若干情况,不过分析了以上7中,其他的就可类转载 2012-12-04 12:56:35 · 1001 阅读 · 0 评论 -
Android的framework层音量控制原理分析--hot(key)处理
Android.media.AudioManager中包含了对android.media.AudioService的跨进程AIDL调用封装。正常处理过程:1.调整音量是通过AudioManager间接调用AudioService.adjustStreamVolume方法来完成逻辑处理;2.AudioService调用VolumePanel画出音量调整界面,并发送音量变动广播消息,3转载 2012-12-04 00:04:22 · 606 阅读 · 0 评论 -
Android的SeekBar
使用SeekBar的时候,经常遇到的问题有如下:1. seekbar的拖动按钮没有居中。2. seekbar的高度有问题。3. seekbar的拖动按钮在最左最右显示不全。 首先,要解决上述问题,要先检查layout文件在描述seekbar时,有没有正确设置图片的尺寸和检查屏幕密度与图片是否放置在相应的drawable文件夹中(drawable-hdpi, drawable转载 2012-12-04 12:57:08 · 1167 阅读 · 0 评论 -
SMS 和 MMS 在输入字母的响应不一致
在SMS中快速的输入不同按键上的字母,字母在屏幕上出现的方式是停止输入过后一起出现。在MMS中快速的输入不同按键上的字母,字母在屏幕上出现的方式是点击一次就出现一个字母。短信编辑框走的流程是ems editor,编辑框的消息响应函数是mmi_input_box_msg_call_back_ems(),而彩信走的流程是multiline的 editor,编辑框的消息响应函数是 mmi_i原创 2012-12-04 12:58:57 · 786 阅读 · 0 评论 -
如何判断手机是否处于漫游状态?
手机专业术语中的漫游与我们日常生活中的“省内漫游”,“全国漫游”不是一回事。这里的漫游,是指手机使用一个运营商的SIM卡,注册上另一个运营商的网络。判定是否漫游,是通过比较sim卡的PLMN与注册上网络的PLMN,不会去check是本地卡还是异地卡。代码中更新手机漫游状态,是在srv_nw_info_update_roaming_state()中。 cntx->is_原创 2012-12-04 12:59:57 · 6427 阅读 · 0 评论 -
根据Sim卡的插卡情况过滤通话记录
修改两处代码:mmi_sim_enum g_sim_filter=0;static SRV_CLOG_HANDLE mmi_clog_create_srv_handle(mmi_clog_inst_struct *inst){ srv_clog_create_struct create; srv_clog_init_para(SRV_CLOG_PARA_CREAT原创 2012-12-04 13:01:18 · 945 阅读 · 0 评论 -
调整提醒的优先级
如需要调整响应的优先级,需要修改3处。1.typedef enum{ SRV_REMINDER_TYPE_SPON, SRV_REMINDER_TYPE_THEME, // SRV_REMINDER_TYPE_TASK,// SRV_REMINDER_TYPE_CAL,// SRV_REMINDER_TYPE_ALM,原创 2012-12-04 13:20:09 · 889 阅读 · 0 评论 -
恢复出厂设置时清除闹钟
闹钟数据比较特殊,如果在恢复出厂设置时需要清除,需要以下几个步骤才能清除完整;否则可能会出现没有清除彻底的问题,例如:执行完成恢复出厂设置后,进入闹钟里面查看,闹钟数据没有了,但是时间到了,之前的闹钟还会提醒等问题;闹钟的数据分两部分:1, app 保存在 nvram 中的数据2, reminder service nvram 和 RTC 中的数据恢复出厂设置清原创 2012-12-04 13:22:10 · 2280 阅读 · 0 评论 -
FDN号码完全匹配
根据GSM对于FDN的规定,FDN 是 prefix 匹配的,即只要所拨打的号码前缀能够匹配上 FDN 中的号码,则该号码就能够拨打出。例如:假设 FDN 列表中存在号码”1234”,则拨打”123456”等前缀为”1234”的号码时能够成功。有的运营商会要求全号码匹配,即在上面的例子中只能拨打”1234”,可以参照下面的方法修改匹配规则。 [Solution]1, 对于11A及1原创 2012-12-04 13:03:50 · 1165 阅读 · 0 评论 -
如何使USSR编辑界面默认输入法为123
Befor 10A:在EntryScrEditUSSRMsg函数中:If(guiBuffer == NULL){ ……}//要添加的代码mmi_imm_set_app_desired_input_mode(IMM_INPUT_MODE_123_SYMBOLS); RegisterInputBoxValidationFunction(RegisterUSS原创 2012-12-04 13:31:55 · 732 阅读 · 0 评论