自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zjujoe的专栏

都是月亮惹的祸

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

转载 Android 4.4 以太网网络共享功能研究和实现

 android较新的版本中,已经加入了以太网功能,用户可在设置界面设置以太网的连接方式,如DHCP/静态IP/PPPOE。显然,android的实现中默认以太网是作为一个出去的端口(相当于路由器的WAN口),用来分享外部的internet连接。但是部分客户要求能实现以太网来分享设备的internet网络(4G/wifi),希望实现类似于wifi热点或者USB网络共享的功能,我把它定义...

2018-11-27 17:29:00 4325 1

原创 shell 文本处理

最近优化脚本,将几套脚本合并,比如,处理nand手机的脚本和处理emmc手机的脚本是不一样的,这导致我们的脚本有很多个版本。手机侧只有busybox, 所以不能使用功能强大的python来处理文本。花了半天时间,发现虽然语法比较怪异,但也能简洁的完成任务。if [ -e /proc/emmc ]; then    a=`cat /proc/emmc|tr -d '" \r\n'

2012-09-21 15:07:56 3384

原创 关于 android 远程控制(pc 控制手机)

因为手机的触屏有问题,需要通过pc来控制手机。 试用 vnc viewer, 没有成功。 而且它是基于 wifi 的.  然后不放弃,继续查找。 终于发现:androidscreencast, Desktop app to control an android device remotely  http://code.google.com/p/androidscr

2011-06-09 17:25:00 13405 2

原创 轻松搞定 android apn 设置

提供 android apn 一个完整的list

2011-03-24 23:01:00 5890

转载 运营商MCC+MNC

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/supergt2001/archive/2008/11/17/3320983.aspx 1)运营商MCC+MNC 2)国家缩写对应关系

2011-03-17 17:29:00 456330

原创 Android OTA 升级之五:updater

可以说,前面分析的OTA升级的各部分代码都是在搭一个舞台,而主角现在终于登场,它就是updater. Google的代码架构设计非常好,各部分尽量松耦合。前面介绍升级脚本时,可知有两种类型的脚本,amend & edify. 他们各自对应一个updater. 这里,我们主要关注新的edify的updater. Updater可以作为学习解释器/编译器的同学一个很好的实例,但是我们只关心产品化相关的内容,所以并不去深究lex/yacc相关的东西。

2011-03-15 20:14:00 19239 8

原创 Android OTA 升级之四:进入根文件系统

从bootloader 进入Recovery 模式后,首先也是运行Linux内核,该内核跟普通模式没有区别(减轻了BSP开发者的任务)。区别从执行文件系统开始。 Recovery 模式的细节就隐藏在其根文件系统中。 下面,我们就看看进入Recovery 根文件系统都干些啥。

2011-03-13 10:08:00 20080 9

原创 Android OTA 升级之三:生成recovery.img

得到了ota升级包后,我们就可以用它来升级系统了。Android 手机开机后,会先运行 bootloader。 Bootloader 会根据某些判定条件(比如按某个特殊键)决定是否进入 recovery 模式。Recovery 模式会装载 recovery 分区, 该分区包含recovery.img。recovery.img 包含了标准内核(和boot.img中的内核相同)以及recovery 根文件系统。下面我们看一下它是如何生成的。

2011-03-08 08:20:00 37583 1

原创 Android OTA 升级之二:脚本 ota_from_target_files

前面介绍了ota package 的编译过程,其中最核心的部分就是一个 python 脚本:ota_from_target_files. 现在我们分析这个脚本。

2011-02-26 12:06:00 47307 38

原创 Android OTA 升级之一:编译升级包

OTA 升级是 Android 系统提供的标准软件升级方式。 它功能强大,提供了完全升级、增量升级模式,可以通过 SD 卡升级,也可以通过网络升级。 这里,我们先研究最简单的情况,通过 SD 卡进行完全升级。 如何执行升级就不多说了,网上有很多资料。(比如,介绍HTC手机如何升级)。我们感兴趣的是它是如何实现的,作为开发者,如何修改它以符合我们的定制化需求。 首先,我们研究一下 ota 升级包的编译过程。

2011-02-24 19:50:00 64234 28

原创 关于 LOCAL_SDK_VERSION

今天编译email应用,发现test测试不能通过,而email本身可以。说一个class没有定义!这个class 明明在email中也使用了!仔细对比Android.mk发现了一个test程序的Android.mk 多了一个 LOCAL_SDK_VERSION注释该行,发现可以编译通过!google一下,原来,LOCAL_SDK_VERSION 会使得应用程序不能访问hide的api!而我们新加的API为了不影响SDK接口,都故意hide了。所以。

2010-12-23 20:34:00 13242 1

原创 Android 性能优化一例(Bitmap创建时会调用gc)

现象: 做一个小动画,实现方式为每50ms更新一张bitmap, 循环播放,从而达到动画效果。问题: 发现动画会卡,有时卡在第7帧,有时卡在第10帧,不定。

2010-12-19 15:38:00 5519 2

原创 dmtracedump 的替代品

这两天使用 traceview 分析代码性能, google文档上说有一个工具 dmtracedump,可以生成函数调用图。 试验了一下,失败!google 一下,原来此工具一直处于 broken 状态。 以前玩过 KFI, 一同好还自己开发了工具去生成jpg的函数调用图。 于是,花几个小时写了一个脚本,放在这里,方便同好。

2010-12-16 19:00:00 8254 11

原创 编译Android 使用 Java5 还是 Java6

现在越来越多的代码开始使用java 6 的feature, 而 Android 却要求java5!这给开发带来麻烦:得装两个版本的java, 然后用 update-alternatives 去切换,注意有3个相关程序:update-alternatives --config javaupdate-alternatives --config javac

2010-10-09 18:48:00 5796

原创 关于 Android 下的自动化测试之二

研究了一个多月 Android 自动化测试,也大体知道了各种测试手段,这里总结一下。也是对前面(之一)的补充。前面的专题已经说得够多,这里只是些总结性的文字。

2010-06-23 15:13:00 15114 6

原创 尝试 Android Scripting Environment 之四

随着学习的深入,我们准备去修改一下源码,扩充其API 以满足我们自己的个性化要求!比如,能够拨打一个电话,并返回该电话是否成功,是对方忙还是网络信号不好等等。

2010-06-22 18:06:00 5495

原创 尝试 Android Scripting Environment 之三

ASE 让人爱不释手,python 也是令人发狂的好东西,所以我们继续深入学习 ASE + Python!

2010-06-18 12:05:00 7941 5

原创 Android CTS 测试研究之三

前面都是研究 CTS 面上的东西, 这两天认真学习了一下 Android Instrumentation Test 的相关内容,深切体会到其强大的功能!(UI 控制,生命周期控制,伪环境对象提供等等), 回过头来,我们再来看看 CTS 的细节内容。和前面的内容区分开,我们从具体测试用例的角度来看。首先选择文档中经常提起的apidemo 作为研究对象。

2010-06-16 11:51:00 21676 13

转载 Changing the emulator locale from the adb shell

From SDK觉得跟自动化测试有点关系,就放在这里了。

2010-06-14 12:27:00 4094

转载 monkey测试工具

From: http://blog.csdn.net/yangwenchao1983/archive/2009/12/30/5107407.aspx当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击,触摸,手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey用随机重复的方法去负荷测试你开发的

2010-06-11 14:06:00 9269 3

原创 尝试 Android Scripting Environment之二

前文>中我们写了一个脚本,可以通过 ADB 在 PC 端控制 ASE Python 脚本的执行。 这里,我们就通过该脚本,研究一下 ASE 自带的例子,从而知道 ASE 的能力,为我们或许编写自己的测试脚本做准备。

2010-06-09 18:50:00 8239

原创 尝试 Android Scripting Environment

尝试 Android Scripting Environment

2010-06-09 11:23:00 11295

原创 关于 Android 下的自动化测试

现在 Android 开发非常红火, Java 环境下敏捷开发是不二选择。 而敏捷开发都是测试驱动。 所以,最近研究了一下 Android 下的各种自动化测试手段。本文重点在于面上的比较而非点上的细节。时间比较短,所以很可能理解很不充分。

2010-06-02 10:23:00 8724 1

原创 Android CTS 测试研究之二

继续较深入了解 CTS 的细节

2010-06-01 20:34:00 29755 47

原创 Android CTS 测试研究

Android CTS 测试研究前言¶从各种渠道了解到 Android CTS 测试, 是一种类似于 Windows Mobile LTK 的测试。大体 Google 一下, 发现关于 CTS 的信息非常至少, 只说它有两万多个测试用例。然后它只对 OHA 成员开发。本着不抛弃,不放弃的原则,继续 Google...终于发现了参考1:Cezary Statkiewiczs blog。搞笑的是该

2010-05-29 16:13:00 23427 20

转载 Using Android's Compatibility Test Suite

From:http://bitbar.com/blog/44/using-androids-compatibility-test-suite <h2 class="node-title Using Androids Compatibility Test Suite">Using Androids Compatibility Test Suite Submi

2010-05-24 18:09:00 5036

原创 内核启动时间优化一例

内核启动时间优化一例作者: 宋立新Email:[email protected]前言       为了提高开机时间,我们需要优化的部分有:1)    bootloader 启动速度2)    Linux 内核启动速度3)    文件系统启动速度4)    Nand (假设你的 Storage 使用 nand)的读速度5)    应用框架启动速度等等。  

2010-05-15 13:26:00 9659 2

原创 __initdata 的奇怪影响

__initdata 的奇怪影响作者: 宋立新Email:[email protected] 恍然大悟后,当然也就不奇怪了。 不过当时 __initdata 修饰符确实给我们带来很大的困惑。  事情的经过是这样的。 通常我们设置mfp寄存器是在系统的启动阶段统一设置的, 所以 lc6830.c 中会有一个数组:static mfp_cfg_t saar_mfp_c

2010-04-21 16:23:00 10491 1

原创 让系统 idle 时更省电_采用平台相关 idle 函数以降低平均功耗的一个实践

让系统 idle 时更省电_采用平台相关 idle 函数以降低平均功耗的一个实践作者: 宋立新Email:[email protected] 从 Linux 内核启动说起。 话说某用户按下开机键, bootloader 将内核放入内存,然后跳转到内核首地址。如果内核为压缩版本 ( zImage) 内核会进行自解压, 然后运行非解压内核(Image)。 Image

2010-04-21 16:20:00 3514

原创 Linux嵌入式开发的一些总结

 Linux嵌入式开发的一些总结作者: 宋立新Email:[email protected]前言做了几年 Linux 底层嵌入式开发, 有一些心得, 这里记录下来,作为进一步学习 Linux 之前的一个总结。 每日构建Daily Build 是指利用自动化脚本,每天从版本库里提取代码及相关工具,生成可以下载到板子的系统镜像。大的公司比如Nokia/Microsoft等

2009-11-27 15:14:00 2163 3

原创 一个DMA 分配失败问题研究

 一个DMA 分配失败问题研究作者: 宋立新Email:[email protected]现象:最近好几个模块的同事都反应驱动中调用:dma_alloc_writecombine 会失败!研究:首先重现该问题, 在 nand 驱动的 probe 函数:  pxa3xx_nand_probe 中调用 dma_alloc_writecombine: 测试代码:    #i

2009-11-27 13:20:00 9610

原创 Trace 调试之 noinline 修饰符

 今天 试着设断点到:static int __init pxafb_map_video_memory(struct pxafb_info *fbi) 失败! System.map里也找不到它。 单步跟踪发现该函数被 inline 了!即使是使用 O0  编译也不行!可能是因为使用了 static 修饰符,本身又是没有循环等复杂结构。编译器认为不 inline 太可惜了

2009-11-24 09:40:00 1449 2

转载 ssh 无密码登录(使用密钥)

 1.     本地生成 public keys & private keys$ ssh-keygen -t dsaGenerating public/private dsa key pair.Enter file in which to save the key (/opt/zjujoe/.ssh/id_dsa): Enter passphrase (empty for no p

2009-11-12 10:12:00 1212 1

转载 strace工具移植到ARM(davinci)平台

strace工具是一个非常强大的工具,是调试程序的好工具。要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件。具体步骤如下:1.下载 strace-4.5.16.tar.bz2,不要下载最新的strace-4.5.18.tar.bz2,因为后者编译会出错。下载网址是:http://sourceforge.net/project/showfiles.php?group_id=28

2009-10-10 15:19:00 2832

原创 Nand 驱动调试记录

新项目使用了 Micro 4Gb 16bit Nand 作为 Storage, 这样,我们需要对下载工具、bootloader、Linux 内核做一些修改。 这里主要记录了 Linux 内核 Nand 驱动调试过程中遇到的问题。问题1: 擦除某个分区会导致系统不能启动执行命令擦除某分区:flash_eraseall  /dev/mtd8重启, 发现系统不能启动!重新用 Jtag

2009-09-30 11:37:00 2304

原创 关于 bootloader 里的物理地址到虚拟地址的影射

最近研究 OBM, OBM 里为了支持中断, 需要把中断入口放在 0 地址, 但是 pxa 平台 DDR 内存物理地址在 0x80000000, 怎么办呢? 使用虚拟地址! 简单研究了一下 OBM 物理地址到虚拟地址的转换过程。比较有意思。 这里简单介绍一下。 Pxa  平台有内置 SRAM  (这里称为 A 地址空间),对应物理地址 0x5c013000, 以及 外置 DDR R

2009-09-07 09:48:00 1678

原创 几种 XXX_initcall 宏研究.doc

引言今天阅读启动相关代码(bootinfo.c), 看到了一个函数:232 core_initcall(bootinfo_init); 不由想起前两天看到的: 607 subsys_initcall(gpiolib_debugfs_init) 结合平时我们使用的:4549 module_init(pxa3xx_nand_init);(built-in时对应:249 #d

2009-08-24 14:25:00 1157

原创 关于 switch class

早上查找一种代码示例(通过 sysfs 开关外设比如 modem),看到了 switch class, 位于drivers/switch由google编写。它主要用于管理一些开关型外设, 比如耳机插拔等。 目前实现了 gpio 型的开关, 当然,它也提供了接口用于实现非 gpio型开关。它提供了 sysfs 的接口用于查询当前开关的状态, 同时出现开关事件时,会通过 uevent

2009-08-13 09:05:00 2322 1

原创 Linux 内核裁剪的自动化方法

 Linux 内核裁剪的自动化方法作者: 宋立新Email:[email protected] 随着广泛地获得使用并被移植到不同的平台,Linux 内核源代码正在越来越大,比如, Linux 2.6.28 中, 文件数有 25282 个,大小有350M。 对于某一个平台,真正需要的的文件其实不到 10%, 为了提高研发效率,我们应当删除或者暂时删除那些永远也不会用到的文件

2009-08-05 18:47:00 5876 9

原创 使用 kerneldoc

http://www.mjmwired.net/kernel/Documentation/kernel-doc-nano-HOWTO.txt 比如: drivers/rtc/rtc-pxa.c 中写: /** * pxa_rtc_probe() - probe function for pxa micco driver * @pdev:      device struct

2009-06-18 13:39:00 2073

Android_Developer_Guide PDF版

Android Developer Guide PDF 版 2010.06 打开书签可以按照章节阅读

2010-06-12

空空如也

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

TA关注的人

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