展讯开发指南
展讯开发指南samuel.song.bc@1基本情况 (3)1.1市场情况 (3)1.2产品情况 (3)1.3与MTK对比 (4)1Roadmap (4)2硬件 (4)3细节 (5)3.1Internal RAM (5)3.2内存 (5)3.3操作系统 (5)3.4C++ (5)3.5audio (5)3.6Camera (5)3.7Socket部分 (5)3.8MMI (6)3.9调试 (6)2平台 (6)2.1软件版本 (6)2.2中文支持 (7)3编译 (7)3.1添加模块 (7)3.2C++编译 (8)3.3添加资源模块 (9)4GUI (10)4.1窗口 (10)4.2消息 (10)4.3List控件 (10)4.4Lable控件 (11)5资源 (12)5.1应用程序 (12)5.2图片资源 (12)5.3字符串资源 (12)5.4窗口ID (13)5.5添加菜单 (13)6调试 (14)6.1消息 (14)7模拟器 (14)8电话簿 (15)9窗口模板 (15)好好学习,天天向上。
1基本情况1.1 市场情况2011-8-3:展讯和MTK,MStar都在搞类智能机的概念,去年炒Android版本的千元智能机,中兴和华为做的还不错,但是山寨搞的并不好,MTK的6516基本没有做起来。
所以他们提出了类智能机的概念,或者叫做PDA,成本可以控制在300RMB,且效果很好,展讯的6800+WRE 就是这个模式,对农民工兄弟,似乎可以以假乱真Android了。
MTK对应的是35/36,MStar 的是33C1/33N。
2011-7-29:目前展讯的主力产品是66xx系列,6600l的潜力已经被挖掘殆尽,再做下去也赚不到钱。
6610/20还没有冲量,他们本身就是6600l的costdown产品,所以6620的担子很重,如果做不起来,今年展讯的业绩会很难看。
6800H只是过渡产品,为未来的6810铺路,6800H存在的意义在于便于6810快速切入,展讯的未来基本上都压在6810上了。
6810今年必须出来!2011-01-11:占据国内25%的Feature phone市场份额,主打是6600L,2个多美金,与之对应的是MTK的53平台(3.5美金开始降价)。
出货手机国内和国外市场大概是6/4开。
国内比较大的方案公司是闻泰和天宇。
1.2 产品情况打算内置一些重要应用,包括:JavaQQCStar输入法全浏览浏览器(爱可信(ACCESS)),TTS(Text To Speech)其中的全浏览目前主要在8800上实现。
UCWeb目前是Java版本的。
目前在主推自己开发的中间件平台-WRE,打算6月份量产。
1.3 与MTK对比1Roadmap展讯基带芯片的演进如下6600L是基于arm7的armv4的一个芯片,比MTK6225的armv5的arm7要低一个档次前者是三级pipeline, 后者是五级pipeline6600D→6600M→6600R(相对高端)→6600H(相对低端)→进一步cost down 6600L,但对多媒体支持有提升此外还有一个6800的芯片,arm9,失败也就是目前,只有6600L在撑场面2硬件目前市场主流应用为6600L,存储器配置为nor flash 128x32,以及少量的nand flash。
Design house的常用软件配置未知(08A,08B?)cpu设计主频96M?,但只能工作在78M(13x6),因为受外围的nor flash速度拖累,如果使用nand flash可全频率工作。
MTK6225主频104M,有cache,且internal ram等片上资源较mtk丰富6600L没有cache6600L片上资源,硬件特性不明需进一步了解3细节3.1Internal RAM内部内存,总共可用空间为0x3800,14k bytes非常小,看目前的情况,常用来放critical task 的栈和队列。
估计我们也需要这么使用。
3.2内存大约有1M多,情况估计比MTK略好,但内存使用的冲突估计同样存在,需要事先考虑。
3.3操作系统RTOS采用threadX,和MTK的nucleus无大的差别,可动态创建线程3.4C++展讯平台不支持C++源文件编译,如果是C++源文件,建议用ADS编译成静态库。
3.5audio简单看了下,接口简洁支持AMR播放仅支持ADPCM录音,3.6Camera目前展讯已提供相应接口,可获取jpeg,yuv422,rgb565格式的数据,是否需要yuv420,省得还要转换3.7Socket部分标准的unix socket形式,和mtk不太一样,MTK平台提供了一层抽象,使应用程序可以使用异步消息机制使用网络,而展讯没有做这层抽象,只提供了同步的select等机制,需要应用程序自己封装异步机制。
3.8MMI类似于一个退化的windows概念,结构清晰,可快速开发3.9调试调试工具使用和MTK无大的差别模拟器上网需验证?2平台8800:3G的TD方案6800:ARM9-200M6600L:ARM7-78M其中8800是3G解决方案,TD-SCDMA的,软件版本是09B分支。
其中6800目前是版本是D,2月份打算上H版,主要竞争对手是MTK的35和36,属于中高端系列,.软件代码是10A分支。
其中的6600L是低端版本,主频78M,软件版本是09A,现在是6600L2,到6600L6会将主频升至104MHz,6600L7是3卡3待的产品,在印度和印尼这样运营商众多的国家很有市场,MTK也在跟进。
2.1 软件版本W09.37,P3W09.37,P6W10.25W11.09 C8(2011.5.3)quasim:3卡/4卡?2.2 中文支持MULTI_LAN_SUPPORT = CSTAR ### Multi Language Support: 金拇指为展讯平台提供了中文支持和多语言支持。
3编译编译选项:CFLAGS = -cpu ARM7TDMI -O2 -bi -g+ -apcs /interwork/ -fy -D_RTOS -D_DEBUG -Ec -WallAFLAGS = -cpu ARM7TDMI -keep -bi -g -apcs /shlclient/interwork/编译选项的设置在Makefile.rules里面定义。
编译bin:make p=sc6600l_sp6601l new编译模拟器:make p= sc6600l_sp6601l m=simulator生成的dsw工程文件在build下面的win下面,需要用VC6来打开。
3.1 添加模块在make目录下,添加模块的makefile,(参考已有的格式)例如要添加xx模块,在make文件夹下创建xx目录,里面添加xx.mk即可。
在总的project_sc6600l_sp6601l.mk中,先添加总的开关:BAIDU_IME_SUPPORT = TRUE ### BAIDU_IME_SUPPORT:# Option1:TRUE# Option2:FALSE注意:# Feature Options (For User)在Makefile.third-party中添加外部库引用##============== baidu start ===================ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)ifeq ($(strip $(STACK_CHECK_SUPPORT)), TRUE)3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/baidu_works_arm7_bi.lib3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/libbicore_arm7_bi.libelse3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/baidu_works_arm7_bi_swst.lib 3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/libbicore_arm7_bi_swst.lib endifendif##============== baidu end ===================在Makefile中添加编译模块##============== baidu start =================ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)COMPLIBS_DBG += baidu_imeendif##============== baidu end ===================注意位置:Segment: COMPLIBS注意:如果出现了宏定义和sprd_macro.txt里面的定义不匹配的问题,需要注意添加的位置。
3.2 C++编译不支持C++源文件在系统里面编译,必须是C文件。
晕死。
3.3 添加资源模块在make文件夹下面的resource,有资源的makefile,在SOURCES中添加模块的资源头文件,命名规则为moduleName下划线mdu_def.h。
然后在SRCPATH中添加路径ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)SOURCES += baidu_ime_mdu_def.hSRCPATH += MS_MMI/source/mmi_app/app/im/baidu_ime/incendif模块的资源文件是通过该makefile下面的命令拷贝到最后build文件夹中的,脚本会在build\sc6600l_sp6601l_builddir下面创建res文件夹,为每个在makefile里面单独编译的module创建一个文件夹,例如baidu_ime,然后把baidu_ime_mdu_def.h拷贝到这个里面。
这样,在mmi_res_prj_def里面添加module的路径就是://start baidu code#if defined(BAIDU_IME_SUPPORT)RES_ADD_MODULE(MMI_MODULE_BAIDU_IME, "\\baidu_ime\\baidu_ime_mdu_def.h")#endif //BAIDU_IME_SUPPORT//end baidu code这是在build下面的临时路径,而不是这个文件真正的路径。
展讯 build环境使用手册
展讯 build环境使用手册一、介绍1.1 前言在展讯(Exynos)处理器的开发环境中,build环境是非常重要的一环。
为了保证开发工作的顺利进行,展讯提供了一套完整的build环境使用手册,以帮助开发人员快速搭建和使用展讯的开发环境。
1.2 目的本文旨在介绍展讯build环境的搭建和使用方法,以帮助开发人员快速上手展讯处理器的开发工作。
二、环境搭建2.1 硬件要求在搭建展讯build环境前,首先需要满足一定的硬件要求。
建议使用高性能的计算机,配置至少16GB内存和500GB磁盘空间,以保证编译过程的顺利进行。
2.2 软件要求展讯build环境需要使用特定版本的操作系统和编译工具。
目前推荐使用Ubuntu 18.04 LTS操作系统,并安装必要的开发工具和编译器,如gcc、make等。
2.3 下载代码在搭建build环境之前,需要从展讯官方全球信息湾上下载最新的代码库。
开发人员可以通过Git工具将展讯的开发代码库克隆到本地,并根据需要切换到特定的分支或标签。
2.4 编译工具链展讯build环境需要使用特定的ARM交叉编译工具链,用于编译展讯处理器的应用程序和驱动程序。
开发人员可以从展讯官方全球信息湾上下载最新的编译工具链,并按照官方文档进行安装和配置。
2.5 系统配置在搭建build环境后,还需要进行一些系统配置工作,如设置环境变量、安装必要的依赖库等。
展讯官方文档中提供了详细的配置方法,开发人员可以根据文档进行操作。
三、使用方法3.1 编译应用程序一旦搭建好build环境,开发人员就可以开始编译展讯处理器的应用程序了。
通过使用展讯提供的Makefile和编译工具链,开发人员可以很方便地将自己的应用程序编译成可执行文件,并在展讯处理器上运行。
3.2 编译内核除了应用程序外,展讯的build环境还可以用于编译展讯处理器的内核。
开发人员可以从展讯官方全球信息湾上下载最新的内核代码,并使用展讯提供的配置文件和编译工具链进行内核的编译和定制。
展讯操作系统API用户指南
1.1 范围 .................................................................................................................................7 1.2 参考文档..........................................................................................................................7 1.3 缩写和定义 ......................................................................................................................7
3.4 内存管理........................................................................................................................14 3.4.1 分配内存 SCI_ALLOC............................................................................................14 3.4.2 释放内存 SCI_FREE ..............................................................................................14 3.4.3 内存拷贝 SCI_MEMCPY........................................................................................15 3.4.4 设置内存 SCI_MEMSET ........................................................................................16 3.4.5 内存拷贝(以16bit为单位) SCI_MEM16CPY .....................................................17 3.4.6 设置内存(以16bit为单位) SCI_MEM16SET......................................................18
展讯 Norflash配置指南
L平台Norflash配置指南展讯通信主讲人:Nick.Zhaor e a dt r umC on f id en t ia lL上支持的Norflash类型¾Pagemode Flash¾Burstmode Flash¾ADP Flash¾ADM Flash注意:1. ADM Flash都是Burstmode2. ADM Flash需要配置Strapping Pin3. 手机对Norflash的选型尽量选择Burstmode Flash,因为从Memory对系统提供的性能来看:Burst>Page>Single4. 对Pagemode Flash一定要将其SRAM配置成Pagemode5. Flash只有Burst Read,没有Burst Write。
而SRAM既有Burst Read,也有Burst Write。
6. 由于共用总线的原因,LCM与Flash的供电电压要相同。
S pa d t r umC on f id en t ia lFlash空间划分S pr ea d t r umC on f id en t ia l对NORMCP_ENTITY_T的说明¾NORMCP_SPEC_T是对这款Nor MCP本身属性的描述,与它所应用的平台无关。
¾NORMCP_CONFIG_T是这款Flash在当前平台上应该配置成何种读写模式。
¾NOR_FLASH_CONFIG_T是用来描述Flash 空间应该如何划分。
S pr er e a dt r umC on f id en t ia l如何添加一款新的Flash1.按照Flash SPEC将NORMCP_SPEC_T描述正确。
如果是Pagemode Flash就将其放到Normcp_burst_not_support.c中。
如果是Burstmode Flash,请参照normcp_k5l2833ata_af66.c进行配置。
展讯学习笔记(整理)
创建窗口的步骤:第一步:创建窗口数据表WINDOW_TABLE( MMIPB_MAIN_WIN_TAB ) ={WIN_FUNC((uint32)HandleMainWinMsg),WIN_ID( MMIPB_MAIN_WIN_ID ),CREATE_TAB_CTRL(GUI_TAB_ITEM_LEFT,GUITAB_STATE_NONEED_SCROLL|GUITAB_STATE_SINGLE_LINE,MMIPB_SEARCH_LIST_TAB_CTRL_ID),END_WIN};第二步:实现窗口处理函数:LOCAL MMI_RESULT_E HandleMainWinMsg(MMI_WIN_ID_T win_id,MMI_MESSAGE_ID_E msg_id,DPARAM param){MMI_RESULT_E recode = MMI_RESULT_TRUE;switch(msg_id){case MSG_OPEN_WINDOW:break;case MSG_GET_FOCUS:break;case MSG_LOSE_FOCUS:break;case MSG_FULL_PAINT:break;case MSG_CLOSE_WINDOW:break;default:break;}return recode;}第三步:调用MMK_CreateWin创建窗口5,在MS_MMI/source/mmi_app/app目录下添加新模块:修改app.mk文件中的宏:MSRCPATH、MINCPATH、SOURCES6,字库资源放在目录MS_MMI\source\resource\mmi_res_320x480_universe\FONT中7,铃声资源放在目录MS_MMI\source\resource\mmi_res_320x480_universe\RING中8,颜色资源表在目录MS_MMI\source\resource\mmi_res_320x480_universe\color_table.xls 9,开机log在MS_MMI\source\resource\mmi_res_320x480_universe\logo.bmp10,mmi_res_prj_def.h文件中:定义语言信息、定义全局信息、定义皮肤信息、定义模块信息、定义铃声信息、定义字库信息11,在每个模块中,基本上都有一个自己模块的资源ID 头文件,例如common模块的common_mdu_def.h头文件12,mmi_theme.c和mmitheme_xx.c中实现了几乎所有控件的风格。
展讯 build环境使用手册
展讯 build环境使用手册展讯 Build 环境使用手册一、简介展讯 Build 环境是为展讯公司开发团队提供的一套集成开发环境,旨在为开发人员提供便捷、高效的开发工具和平台。
本手册将详细介绍展讯 Build 环境的安装、配置和使用方法。
二、安装1. 下载展讯 Build 环境安装包展讯 Build 环境安装包可以从展讯公司的官方网站下载。
请确保从官方渠道下载,以确保安装包的安全性和完整性。
2. 执行安装程序双击下载的安装包,按照提示一步步进行安装。
建议选择默认安装路径,以便后续操作的顺利进行。
3. 完成安装安装完成后,会在您选择的安装路径下生成展讯 Build 环境的文件夹。
您可以在此文件夹中找到所有的开发工具和相关资源。
三、配置1. 环境变量设置为了能够方便地在任意路径下调用展讯 Build 环境,我们需要对环境变量进行一些配置。
- Windows 系统:右键点击“计算机”或“我的电脑”,选择“属性”->“高级系统设置”->“环境变量”。
在系统变量中找到“Path”,并选择“编辑”。
在弹出的窗口中,将展讯 Build 环境的安装路径添加到“Path”变量的值中,并点击“确定”保存。
- macOS / Linux 系统:在终端中输入以下命令,并将展讯 Build环境的安装路径替换为您的实际路径。
```shellexport PATH=/your/installation/path:$PATH```2. 配置开发工具根据您的开发需求,展讯Build 环境提供了多种开发工具和插件。
您可以根据需要进行安装和配置。
- IDE:展讯 Build 环境支持多种集成开发环境,如 Eclipse、Android Studio 等。
您可以根据个人喜好进行选择和安装。
- SDK:展讯 Build 环境提供了丰富的软件开发工具包,包括Android SDK、Java SDK 等。
您可以根据项目需要进行安装和配置。
展讯6820平台开发介绍
11/09/11
保密信息
.4
环境配置
• Adb(Android Debug Bridge)
在ubuntu中配置adb 步骤1,把adb拷贝到/usr/bin目录下 $sudo cp /home/apuser/<Android_Project>/out/host/linux-x86/bin/adb/ usr/bin 步骤2,更改adb的权限 $sudo chmod a+x /usr/bin/adb 步骤3,创建spreadtrum usb 专有 VID $[ -d ~/.android ] || mkdir ~/.android $echo 0x1782 >~/.android/adb_usb.ini 在windows中配置adb 步骤1,在C:\Documents and Settings\<User name>\目录下创建文件.android 步骤2,把adb_usb.ini放在文件夹.android中
[cts]
[customize] [dalvik] [development] [external] [frameworks] [hardware] [kernel] [mk] [out] [packages] [prebuilt] [sdk] [system] [u-boot] [vendor]
Android兼容性测试套件
11/09/11
保密信息
客户化工程配置
• 3rdparty目录结构:
├── app-----------------------------------------------------------------模块名:app
│ ├── app6810--------------------------------------------------------模块配置:app6810
展讯平台软件架构介绍
展讯平台软件架构介绍展讯平台软件架构介绍Spreadtrum 12/19/20102010-12-19Proprietary and Confidential Information2培训目的对展讯平台软件架构有初步认识对各模块功能有初步概念2010-12-19Proprietary and Confidential Information3Table of Contents软件开发平台框架平台各模块介绍编译开发环境接口使用举例2010-12-19Proprietary and Confidential Information4软件开发平台框架软件开发平台框架软件架构平台提供的features2010-12-19Proprietary and Confidential Information5软件架构Call SMS CBS SS PB Game ….其他应用, e.g. wap,java, MMS,etc.Multimedia Audio/VideoOther applicationATCMMI Kernal/GUIOSA DAL(LCD,KPD,CHR)FS, AUDIO, VIDEO, Multimedia Engines MIDI MP3 MPEG4 H.263 Engines Digital Camera Drivers HAL) Proprietary and Confidential Information MN (Call, CB, SS, SMS, GPRS)Layer 3RTOSDiagnosti csLayer 2Layer 1 62010-12-19平台提供的Features完整的GSM/GPRS通信和数据服务功能. 统一的RTOS的APIs - Thread控制,Timer, Memory Management, Message Queue… 提供完整的TBIOS APIs,能快速的适应硬件和外设的更改。
展讯 Norflash配置指南
L平台Norflash配置指南展讯通信主讲人:Nick.Zhaor e a dt r umC on f id en t ia lL上支持的Norflash类型¾Pagemode Flash¾Burstmode Flash¾ADP Flash¾ADM Flash注意:1. ADM Flash都是Burstmode2. ADM Flash需要配置Strapping Pin3. 手机对Norflash的选型尽量选择Burstmode Flash,因为从Memory对系统提供的性能来看:Burst>Page>Single4. 对Pagemode Flash一定要将其SRAM配置成Pagemode5. Flash只有Burst Read,没有Burst Write。
而SRAM既有Burst Read,也有Burst Write。
6. 由于共用总线的原因,LCM与Flash的供电电压要相同。
S pa d t r umC on f id en t ia lFlash空间划分S pr ea d t r umC on f id en t ia l对NORMCP_ENTITY_T的说明¾NORMCP_SPEC_T是对这款Nor MCP本身属性的描述,与它所应用的平台无关。
¾NORMCP_CONFIG_T是这款Flash在当前平台上应该配置成何种读写模式。
¾NOR_FLASH_CONFIG_T是用来描述Flash 空间应该如何划分。
S pr er e a dt r umC on f id en t ia l如何添加一款新的Flash1.按照Flash SPEC将NORMCP_SPEC_T描述正确。
如果是Pagemode Flash就将其放到Normcp_burst_not_support.c中。
如果是Burstmode Flash,请参照normcp_k5l2833ata_af66.c进行配置。
2015-07-03展讯平台开发-开机-资源-窗口
2015-7-8
Proprietary and Confidential Information
26
支持的图片类型--静态图片
输入(源文件格式) BMP(24,16BIT) BMP(8BIT) BMP(32BIT) PNG GIF JPEG 输出(encode后resource中的格式) BMP/BMP RLE/JPEG(RGB565 LCD) BMP/BMP RLE(256色LCD) ARGB ARGB GIF JPEG
在mmi_res_prj_def.h中添加如下代码: RES_ADD_MODULE(MMI_MODULE_XXX,"\\xxx\\xxx_mdu_def.h") 在资源目录中添加对应目录结构,并增加资源,如xxx模块,添加资源目录 如下
XXX
在Resource.mk中增加模块定义文件路径和文件名,添加之后resource.mk文件 增加的脚本为:MS_MMI/source/mmi_app/app/xxx/h \,增加文件名xxx_mdu_def.h 注意“\”后面没有空格 在模块h文件夹下面创建xxx_img.h和xxx_text.h文件
控件消息:
• • • • • MSG_CTL_OPEN MSG_CTL_CLOSE MSG_CTL_LOSE_FOCUS MSG_CTL_GET_FOCUS MSG_CTL_PAINT 打开控件 关闭控件 控件失去焦点 控件获得焦点 控件刷新
注意:只有Paint消息是窗口先处理,其他消息都是控件先处理
16
内部消息
Kernel维护消息队列 Kernal负责消息的分发处理 消息处理 消息Default是先控件,后窗口
Listbox Label APP
展讯android平台基础
展讯android软件平台基础(for SC8810)目录1.Android基本概念 (2)2.开发环境搭建 (4)安装ubuntu操作系统 (4)设定安装源 (4)安装开发包 (5)展开IDH包 (5)3.代码目录结构 (6)4.编译方法和系统 (7)5.烧录image方法 (8)传统烧录方法 (8)fastboot烧录方法 (8)6.adb (9)7.Log系统 (11)8.Q&A (12)1.Android基本概念Software stack for mobile devices, including operating system, middleware and key applications.2.开发环境搭建安装ubuntu操作系统设定安装源$ sudo vi /etc/apt/sources.listubuntu-10.4:deb /ubuntu/ lucid main multiverse restricted universedeb /ubuntu/ lucid-backports main multiverse restricted universedeb /ubuntu/ lucid-proposed main multiverse restricted universedeb /ubuntu/ lucid-security main multiverse restricted universedeb /ubuntu/ lucid-updates main multiverse restricted universedeb-src /ubuntu/ lucid main multiverse restricted universedeb-src /ubuntu/ lucid-backports main multiverse restricted universe deb-src /ubuntu/ lucid-proposed main multiverse restricted universe deb-src /ubuntu/ lucid-security main multiverse restricted universedeb-src /ubuntu/ lucid-updates main multiverse restricted universe ubuntu-10.10:deb /ubuntu maverick partnerdeb-src /ubuntu maverick partnerdeb /ubuntu maverick maindeb-src /ubuntu maverick maindeb /ubuntu/ maverick main restricted universe multiversedeb /ubuntu/ maverick-backports restricted universe multiversedeb /ubuntu/ maverick-proposed main restricted universe multiverse deb /ubuntu/ maverick-security main restricted universe multiversedeb /ubuntu/ maverick-updates main restricted universe multiversedeb-src /ubuntu/ maverick main restricted universe multiversedeb-src /ubuntu/ maverick-backports main restricted universe multiverse deb-src /ubuntu/ maverick-proposed main restricted universe multiverse deb-src /ubuntu/ maverick-security main restricted universe multiverse deb-src /ubuntu/ maverick-updates main restricted universe multiverse安装开发包更新了安装源之后,需要执行下面的命令安装必要的包$ sudo apt-get update$ sudo apt-get upgrade$ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind eclipse vim ssh git libodbcinstq1c2 odbcinst1debian1展开IDH包3.代码目录结构最外层目录android:-- Makefile (全局的Makefile,里面只包含build/core/main.mk)-- 3rdparty (包含编译脚本,工具,第三方driver, hal, app,binary)-- bionic (bionic C库,bionic含义为仿生,这里面是一些基础的库的源代码)-- bootable (启动引导相关代码)-- build (存放系统编译规则及generic等基础开发包配置、脚本工具)-- cts (Android兼容性测试套件标准)-- dalvik (Dalvik JA VA虚拟机)-- development (应用程序开发相关,需要的模板和工具)-- device (设备厂商的示例文件)-- external (Android使用的一些开源的模组)-- frameworks (核心框架层——java及C++语言)-- hardware (部分厂家开源的硬解适配层HAL代码)-- kernel (Linux内核)-- ndk (一系列工具合集,帮助开发者快速开发C/C++动态库)-- out (编译完成后的代码输出与此目录)-- packages (应用程序包)-- prebuilt (x86和arm架构下预编译的一些资源)-- sdk (Android sdk及模拟器)-- system (Android底层文件系统库、应用及组件——C语言)-- u-boot (Bootloader,引导加载器)-- vendor (厂商定制代码)4.编译方法和系统$ cd 3rdparty/$ ./build.products.sh00). sp8810gaExample:*1* ./build.products.sh sp8810ga2 ./build.products.sh s p8810ga [subcmd]3 jobs=16 ./build.products.sh sp8810ga++++++++++++++++++++++++++ subcmd list ++++++++++++++++++++++++++prebuild [dirname] -- 编译android工程时脚本会将第3方chip的修改动态patch到android工程中lbuild [dirname] [clean] -- 调用第3方build.sh脚本中的function my_local_build函数(主要用来编译ko)nbuild -- 只编译标准androidfprebuild -- 快速build需要的前提配置自动设置,同时完成一次彻底编译(建议使用)fbuild -- 快速build,不编译3rdparty下的ko(一旦repo sync,务必重新执行fprebuild)fbuild2 -- 快速build,在fbuild基础上,再额外编译3rdparty下的文件(建议使用)clean -- 清除第3方对android的所有修改,恢复到原始的android版本,可以认为是unpatch.diff [dirname] -- 比较第3方代码和android标准代码的差异,即生成patchdiff2 [dirname] -- 用beyondcompare比较第3方代码和android标准代码的差异install [dirname] -- 将第3方编译结果安装到out/target/product/xxxx/system/sps*目录install2 [outdir ] -- 将product产品编译结果安装到outdir目录(用来在批量编译产品时完成自动拷贝)ramdisk -- 编译product产品对应的ramdisk.img,将init.3rdparty.rc修改内容添加到ramdisk.imgrecovery -- 编译product产品对应的ramdisk-recovery.img和recovery.img system -- 重新打包system文件夹生成system.imguserdata -- 重新打包data文件夹生成userdata.imgbootimage -- 生成boot.img和linux.bin内核文件bootimage2 -- 先删除.config,然后编译整个内核,最后生成boot.img和linux.bin 内核文件5.烧录image方法编译之后产生的image目录在:Out/target/product/hsdroid/sps.images.sp8810ga/可以看到,idh包编译出来的需要烧录的image是:fdl2.bin, u-boot-spl-16k.bin, u-boot.bin,boot.img, system.img, userdata.img, recovery.img另外,展讯还会release modem image:Vmjaluna.img, DSP.bin, nvitem.bin, Modem.bin传统烧录方法使用research downloader, upgrade downloader, factory downloader, 烧录上面所有的image。
