各位大神好!为什么我的C4droid终端droid4x安卓模拟器ios打不开编译好的C语言可执行文

 |  |  | 
您所在的位置: >
> 手机C语言编程软件(C4droid) V4.1.1 免费版
手机C语言编程软件(C4droid) V4.1.1 免费版
是款Android设备上的C/C++程序编译器
软件类别:/
软件语言:
相关链接:
软件大小:28.39 MB
运行环境:Android/
软件评级:
更新时间:
手机扫一扫下载
关联式数据库管理系统
是Microsoft Excel文件修复工具
不用安装直接能用
寄宿于PPT下的计时类插件程序
打开PPT演示文稿
最新攻略资讯
手机C语言编程软件(C4droid) V4.1.1 免费版的标签
不知道有没有朋友是喜欢在手机上进行一些编程的,有的朋友就应该是知道c4droid这款手机C语言编程软件的吧,以前是英文版的不怎么好使用,不过现在小编给你介绍的是中文汉化版的C4droid!
c4droid介绍
c4droid是款Android设备上的C/C++程序编译器,默认以tcc(tiny c compiler)为编译器,可以选择安装gcc插件(20mb,只有root用户可以使用),选用gcc后,可以用sdl(简单直控媒体层库,需安装sdl plugin for c4droid)和qt(nokia官方开发库,需安装sdl plugin for c4droid)。也可以开发native android app(需安装sdl plugin for c4droid),就像google ndk一样。软件支持代码高亮,编译时间随cpu主频而定,主频越高编译越快。gcc插件版本4.7.2提供了示列程序,包含sdl,android native,qt和命令行测试程序源码。
c4droid怎么用
c4droid汉化说明
此次的4.11的绿色汉化版本统一使用签名,如果你之前是使用v4.10的绿色汉化版本,可以直接安装替换,无需卸载旧版后再安装。
1、将“自动编译”汉化为“自动补全”
2、将“自动调整源码(v4.10)”、“格式化代码(v4.09及以前的汉化)”汉化为“缩进代码”
3、修复v4.10汉化版本3.0以下系统的复制粘贴出现未汉化情况
4、修复一些汉化错别字(经过4.10的测试使用,目前没发现错误)
5、增加一些异常崩溃汉化,更加完全的汉化
6、增加汉化信息
c4droid更新内容
1.增加x86手机支持
2.更换新图标(扁平化,跟随iPhone潮流…)
3.增加滑动手势,右滑可以直接运行
4.编辑器主题跟程序主题分开
5.增加左侧菜单(到按键那里设置)
6.更新GCC到4.8.2
7.更新SDL插件到2.0.1
8.更新Qt到5.2.0
8.修复导出APK的Bug
手机C语言编程软件(C4droid)V4.1.1 免费版图片(1/4)
,软件? 软件下载后?飞翔小编十二分诚意等待着您的投诉与建议
APK文件怎么打开,下载APK文件如何安装到手机?推荐使用
软件无法下载
下载后无法使用
与描述不一致linux编程(13)
一、环境说明:
1、VMware版本:8.0.3 build-703057
2、liunx系统:Ubuntu10.10
3、jdk:sun-java6-jdk
二、Ubuntu 10.10更新源列表
&&&&& 由于Ubuntu 10.10版本的源已经过期了,所以,需要对其进行更新,Ubuntu 10.10 已经发布了,下面提供更新源方法与更新源列表地址:&&&
1.sudo gedit /etc/apt/sources.list
&&&& 编辑你的源列表,将原来的内容全部删除,添加下面的源,复制到你的列表中,然后保存列表。
2.sudo apt-get update 更新源列表信息
可以在运行“sudo apt-get update ”时查看一下错误信息,把不能连接的源删除再重新运行“sudo apt-get update ”。
3.sudo apt-get upgrade 升级
或者用ubuntu自带的更新管理器升级也可
二、安装jdk
1、执行:sudo gedit /etc/apt/sources.lis。打开源列表,在最后一行添加
2、保存退出。
3、更新apt源sudo apt-get update
4、安装sun-java6-jdksudo apt-get install sun-java6-jdk
三、Android 源码的获取
要想获取android源码需要借助于几个软件,下面进行一次介绍:
1、ubuntu GIT 安装与使
通过命令更新版本库
2、安装curl
3、获取repo
按照说明,执行:
下面就是修改它的属性:
4、开始下载android源码
首先执行:
然后再执行:
这个执行完了会有要求你输入姓名和邮箱的,但是邮箱一定是谷歌的就行,不过不用输入邮箱和密码也可以,直接按下Enter键就行。
然后创建目录用于存放下载下来的android源码:
最后就是在线拉取android源码了:
嗯,如果已经开始进行下载了,表示已经顺利的开始下载android源码了。这个过程非常漫长,需要等待好长时间,大家慢慢等待吧,等待的过程中大家可以去做点其他的事情,然后就是慢慢等待吧!
当android源码下载完成后,就会在android目录下出现一些文件,对了,在下载的过程中,可能看不到那些文件,等下载完成后就会出现源码目录。以下是android源码的目录结构:
四、Android 源码的编译(make)
源码下载完成后接下来就是对源码的编译了,下载好源码后,会在android目录下有一个MakeFile文件,然后直接在终端下输入make既可以对android源码进行编译,在编译的过程中依然会出现很多的错误,接下来,参照网上给出的一些错误和解决方法:
1、/usr/bin/ld: cannot find -lz
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决方法:&sudo apt-get install zlib1g-dev & &sudo apt-get install lib64z1-dev
2、/bin/bash: bison: command not found
Yacc: aidl &= frameworks/base/tools/aidl/aidl_language_y.y
bison -d &-o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127
解决方法:sudo apt-get install bison
3、/bin/bash: flex: command not found
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp: In function ‘int yyparse()’:
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1827: warning: deprecated conversion from string constant to ‘char*’
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1970: warning: deprecated conversion from string constant to ‘char*’
Lex: aidl &= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
解决方法:&sudo apt-get install flex
4、/usr/bin/ld: cannot find -lncurses
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
解决方法:sudo apt-get install libncurses5-dev
5、fatal error: GL/glx.h: No such file or directory
development/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp:22: fatal error: GL/glx.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1
解决方法:sudo apt-get install libgl1-mesa-dev
6、sh: gperf: not found
target Generated: libwebcore &= external/webkit/Source/JavaScriptCore/create_regex_tables
Generating CSSPropertyNames.h &= CSSPropertyNames.in
sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 140.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h] Error 25
make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h'
解决方法:sudo apt-get install gperf
五、编译SDK
编译SDK可以得到与源码同步的SDK,还会生成一些tools,在源码根目录下:
编译生成的SDK在out/host/linux-x86/SDK下。之后如果在ubuntu下使用eclipse进行开发,可以使用你编译的SDK。
下面就在模拟器中运行镜像,建议切到root用户下,首先配置几个环境变量,将自己编译的SDK设为优先级最高,在源码根目录下执行:
这样会在/etc/alternatives下生成一个指向该SDK目录的软连接AndroidSDK,这个目录主要存放一些系统默认打开的程序的信息和配置。那么/usr/bin/AndroidSDK就指向这个软连接。接着执行:
在文件末尾添加:
接着就可以执行:
$&emulator
运行的就是你编译的映像。执行emulator 命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而
Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img。模拟器运行需要这四个文件,如果你编译了内核则可以使用自己的Kernel镜像,可用于android移植等。
六、单独编译模块
如果你不想编译整个系统,就想编译某一个应用程序,可以使用mmm命令,使用之前,在源码目录下先要执行:
这样会生成一些命令,有m即make、mm编译当前目录下所有模块、mmm编译指定目录下所有模块。你可以把packages/apps/Music应用的application name改成MyMusic(AndroidManifest.xml中),然后执行:
在out/target/product/generic/system/app中就可以看见Music.apk,然后执行:
重新生成system.img。
以上仅仅只是我个人遇到的问题,然后在网上查找资料解决后,运行成功,如果遇到其他问题,可以在网上寻找其他的解决办法,另外可以参考官网:
引用网址:http://blog.csdn.net/xdhywj/article/details/8608243
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14333次
排名:千里之外
原创:26篇
转载:54篇
(2)(4)(2)(3)(3)(11)(52)(1)(1)(1)4799人阅读
android学习(17)
一、环境说明:
1、VMware版本:8.0.3 build-703057
2、liunx系统:Ubuntu10.10
3、jdk:sun-java6-jdk
二、Ubuntu 10.10更新源列表
&&&&& 由于Ubuntu 10.10版本的源已经过期了,所以,需要对其进行更新,Ubuntu 10.10 已经发布了,下面提供更新源方法与更新源列表地址:&&&
1.sudo gedit /etc/apt/sources.list
&&&& 编辑你的源列表,将原来的内容全部删除,添加下面的源,复制到你的列表中,然后保存列表。
## Major bug fix updates produced after the final release of the
## distribution.
deb http://old-/ubuntu/ maverick main restricted
deb-src http://old-/ubuntu/ maverick main restricted
deb http://old-/ubuntu/ maverick-updates main restricted
deb-src http://old-/ubuntu/ maverick-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://old-/ubuntu/ maverick universe
deb-src http://old-/ubuntu/ maverick universe
deb http://old-/ubuntu/ maverick-updates universe
deb-src http://old-/ubuntu/ maverick-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://old-/ubuntu/ maverick multiverse
deb-src http://old-/ubuntu/ maverick multiverse
deb http://old-/ubuntu/ maverick-updates multiverse
deb-src http://old-/ubuntu/ maverick-updates multiverse
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://us.old-/ubuntu/ maverick-backports main restricted universe multiverse
# deb-src http://us.old-/ubuntu/ maverick-backports main restricted universe multiverse
2.sudo apt-get update 更新源列表信息
可以在运行“sudo apt-get update ”时查看一下错误信息,把不能连接的源删除再重新运行“sudo apt-get update ”。
3.sudo apt-get upgrade 升级
或者用ubuntu自带的更新管理器升级也可
二、安装jdk
1、执行:sudo gedit /etc/apt/sources.lis。打开源列表,在最后一行添加
deb http://us./ubuntu/ hardy multiverse
2、保存退出。
3、更新apt源sudo apt-get update
4、安装sun-java6-jdksudo apt-get install sun-java6-jdk
三、Android 源码的获取
要想获取android源码需要借助于几个软件,下面进行一次介绍:
1、ubuntu GIT 安装与使
$sudo apt-get install git
$sudo apt-get install git-core
通过命令更新版本库
git clone git://git.kernel.org/pub/scm/git/git.git
2、安装curl
$sudo apt-get install curl
3、获取repo
按照说明,执行:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl &http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo&& ~/bin/repo
下面就是修改它的属性:
$ chmod a+x ~/bin/repo
$ PATH=~/bin:$PATH
4、开始下载android源码
首先执行:
$ repo init -u /platform/manifest
然后再执行:
$ repo init -u /platform/manifest -b android-2.3.3_r1
这个执行完了会有要求你输入姓名和邮箱的,但是邮箱一定是谷歌的就行,不过不用输入邮箱和密码也可以,直接按下Enter键就行。
然后创建目录用于存放下载下来的android源码:
$ mkdir Andriod
$ cd Andriod
$ repo init -u git://codeaurora.org/platform/manifest.git -b gingerbread
最后就是在线拉取android源码了:
$ repo sync
嗯,如果已经开始进行下载了,表示已经顺利的开始下载android源码了。这个过程非常漫长,需要等待好长时间,大家慢慢等待吧,等待的过程中大家可以去做点其他的事情,然后就是慢慢等待吧!
当android源码下载完成后,就会在android目录下出现一些文件,对了,在下载的过程中,可能看不到那些文件,等下载完成后就会出现源码目录。以下是android源码的目录结构:
|-- Makefile
|-- bionic
(bionic C库)
|-- bootable
(启动引导相关代码)
(存放系统编译规则及generic等基础开发包配置)
(Android兼容性测试套件标准)
|-- dalvik
(dalvik JAVA虚拟机)
|-- development
(应用程序开发相关)
|-- external
(android使用的一些开源的模组)
|-- frameworks
(核心框架——java及C++语言)
|-- hardware
(部分厂家开源的硬解适配层HAL代码)
(编译完成后的代码输出与此目录)
|-- packages
(应用程序包)
|-- prebuilt
(x86和arm架构下预编译的一些资源)
(sdk及模拟器)
|-- system
(底层文件系统库、应用及组件——C语言)
`-- vendor
(厂商定制代码)
bionic 目录
|-- arch-arm
(ARM架构,包含系统调用汇编实现)
|-- arch-x86
(x86架构,包含系统调用汇编实现)
|-- bionic
(由C实现的功能,架构无关)
|-- include
(头文件)
(?inet相关,具体作用不明)
|-- kernel
(Linux内核中的一些头文件)
|-- netbsd
(?nesbsd系统相关,具体作用不明)
|-- private
(?一些私有的头文件)
(stdio实现)
|-- stdlib
(stdlib实现)
|-- string
(string函数实现)
(几个工具)
|-- tzcode
(时区相关代码)
|-- unistd
(unistd实现)
`-- zoneinfo
(时区信息)
(libdl实现,dl是动态链接,提供访问动态链接库的功能)
(libm数学库的实现,)
(apaha架构)
(amd64架构)
(arm架构)
|-- bsdsrc
(?bsd的源码)
(i386架构)
(i387架构?)
(ia64架构)
|-- include
(头文件)
(数学函数,后缀名为.3,一些为freeBSD的库文件)
|-- powerpc
(powerpc架构)
|-- sparc64
(sparc64架构)
(源代码)
|-- libstdc++
(libstdc++ C++实现库)
|-- include
(头文件)
|-- libthread_db
(多线程程序的调试器库)
`-- include
(头文件)
`-- linker
(动态链接器)
(支持arm和x86两种架构)
bootable 目录
|-- bootloader
(适合各种bootloader的通用代码)
`-- legacy
(估计不能直接使用,可以参考)
|-- arch_armv6
(V6架构,几个简单的汇编文件)
|-- arch_msm7k
(高通7k处理器架构的几个基本驱动)
|-- include
(通用头文件和高通7k架构头文件)
|-- libboot
(启动库,都写得很简单)
(一些常用的c函数)
|-- nandwrite
(nandwirte函数实现)
`-- usbloader
(usbloader实现)
|-- diskinstaller
(android镜像打包器,x86可生产iso)
`-- recovery
(系统恢复相关)
(升级脚本使用的edify脚本语言)
(init.rc恢复脚本)
(一个简单的UI)
|-- minzip
(一个简单的压缩工具)
|-- mtdutils
(mtd工具)
`-- images
(一些图片)
(OTA Over The Air Updates升级工具)
`-- updater
(升级器)
(核心编译规则)
|-- history
(历史记录)
(主机端库,有android “cp”功能替换)
|-- target
(目标机编译对象)
(开发平台)
|-- emulator
(模拟器)
|-- generic
|-- idea6410
(自己添加的)
(最简单)
`-- product
(开发平台对应的编译规则)
`-- security
(密钥相关)
(编译中主机使用的工具及脚本)
(Android &acp& Command)
|-- apicheck
(api检查工具)
|-- applypatch
(补丁工具)
|-- apriori
(预链接工具)
(tree工具)
|-- bin2asm
(bin转换为asm工具)
|-- check_prereq
(检查编译时间戳工具)
|-- dexpreopt
(模拟器相关工具,具体功能不明)
|-- droiddoc
(?作用不明,java语言,网上有人说和JDK5有关)
|-- fs_config
(This program takes a list of files and directories)
|-- fs_get_stats
(获取文件系统状态)
(判断是否ELF格式)
|-- isprelinked
(判断是否prelinked)
(按键相关)
(List symbol dependencies)
|-- releasetools
(生成镜像的工具及脚本)
|-- rgb2565
(rgb转换为565)
|-- signapk
(apk签名工具)
|-- soslim
(strip工具)
`-- zipalign
(zip archive alignment tool)
dalvik目录 dalvik虚拟机
|-- dalvikvm
(main.c的目录)
|-- dexdump
(dex反汇编)
|-- dexlist
(List all methods in all concrete classes in a DEX file.)
|-- dexopt
(预验证与优化)
(和zygote相关的一个命令)
(dx工具,将多个java转换为dex)
(?java语言写成)
|-- libcore
(核心库)
|-- libcore-disabled
(?禁用的库)
|-- libdex
(dex的库)
|-- libnativehelper
(Support functions for Android's class libraries)
(测试代码)
(虚拟机实现)
development 目录
(开发者需要的一些例程及工具)
(一些核心应用程序)
|-- BluetoothDebug
(蓝牙调试程序)
|-- CustomLocale
(自定义区域设置)
|-- Development
|-- Fallback
(和语言相关的一个程序)
|-- FontLab
|-- GestureBuilder
(手势动作)
|-- NinePatchLab
|-- OBJViewer
(OBJ查看器)
|-- SdkSetup
(SDK安装器)
|-- SpareParts
(高级设置)
(远程登录)
`-- launchperf
(编译脚本模板)
(有个monkey工具)
(配置数据)
(主机端USB驱动等)
(集成开发环境)
(本地开发套件——c语言开发套件)
(Plug Development Kit)
|-- samples
|-- AliasActivity
|-- ApiDemos
(API演示程序)
|-- BluetoothChat
(蓝牙聊天)
|-- BrowserPlugin
(浏览器插件)
|-- BusinessCard
(商业卡)
|-- Compass
(指南针)
|-- ContactManager
(联系人管理器)
|-- CubeLiveWallpaper
(动态壁纸的一个简单例程)
|-- FixedGridLayout
(像是布局)
|-- GlobalTime
(全球时间)
|-- HelloActivity
|-- JetBoy
(jetBoy游戏)
|-- LunarLander
(貌似又是一个游戏)
|-- MailSync
(邮件同步)
|-- MultiResolution
(多分辨率)
|-- MySampleRss
|-- NotePad
(记事本)
|-- RSSReader
(RSS阅读器)
|-- SearchableDictionary
(目录搜索)
|-- SimpleJNI
(JNI例程)
|-- SkeletonApp
(空壳APP)
(snake程序)
|-- SoftKeyboard
(软键盘)
|-- Wiktionary
(?维基)
`-- WiktionarySimple(?维基例程)
|-- scripts
(sdk配置)
|-- simulator
(?模拟器)
|-- testrunner
(?测试用)
(一些工具)
external 目录
(AES加密)
|-- apache-http
(网页服务器)
(ASTL (Android STL) is a slimmed-down version of the regular C++ STL.)
(自动生成语法分析器,将无关文法转换成C、C++)
|-- blktrace
(blktrace is a block layer IO tracing mechanism)
|-- bluetooth
(蓝牙相关、协议栈)
|-- bsdiff
(diff工具)
(压缩工具)
|-- clearsilver
(html模板系统)
(低延时、低开销、高可用性的IPC机制)
|-- dhcpcd
(DHCP服务)
|-- dosfstools
(DOS文件系统工具)
|-- dropbear
(SSH2的server)
|-- e2fsprogs
(EXT2文件系统工具)
|-- elfcopy
(复制ELF的工具)
|-- elfutils
(ELF工具)
|-- embunit
(Embedded Unit Project)
(java代码覆盖率统计工具)
(Enlightened Sound Daemon,将多种音频流混合在一个设备上播放)
(Expat is a stream-oriented XML parser.)
|-- fdlibm
(FDLIBM (Freely Distributable LIBM))
|-- freetype
|-- fsck_msdos
(dos文件系统检查工具)
(google的无线数据相关)
|-- genext2fs
(genext2fs generates an ext2 filesystem as a normal (non-root) user)
|-- giflib
|-- googleclient
(google用户库)
(This is GNU GRUB, the GRand Unified Bootloader.)
(Google C++ Testing Framework)
(ICU(International Component for Unicode)在C/C++下的版本)
|-- ipsec-tools
(This package provides a way to use the native IPsec functionality )
|-- iptables
(防火墙)
(generate a report describing the difference between two public Java APIs.)
(jpeg头部信息工具)
(jpeg库)
(JUnit是一个Java语言的单元测试框架)
|-- kernel-headers
(内核的一些头文件)
|-- libffi
(libffi is a foreign function interface library.)
|-- libpcap
(网络数据包捕获函数)
|-- libpng
|-- libxml2
(xml解析库)
(一个命令)
|-- netcat
(simple Unix utility which reads and writes dataacross network connections)
|-- netperf
(网络性能测量工具)
(看代码和JNI相关)
|-- opencore
(多媒体框架)
|-- openssl
(SSL加密相关)
|-- openvpn
(VPN开源库)
|-- oprofile
(OProfile是Linux内核支持的一种性能分析机制。)
(ping命令)
(pppd拨号命令,好像还没有chat)
|-- proguard
(Java class file shrinker, optimizer, obfuscator, and preverifier)
|-- protobuf
(a flexible, efficient, automated mechanism for serializing structured data)
(arm模拟器)
|-- safe-iop
(functions for performing safe integer operations )
(skia图形引擎)
|-- sonivox
(sole MIDI solution for Google Android Mobile Phone Platform)
(Speex编/解码API的使用(libspeex))
|-- sqlite
(数据库)
(Nuance 公司提供的开源连续非特定人语音识别)
|-- strace
(trace工具)
(Embedded Text-to-Speech)
|-- tagsoup
(TagSoup是一个Java开发符合SAX的HTML解析器)
|-- tcpdump
(抓TCP包的软件)
|-- tesseract
(Tesseract Open Source OCR Engine.)
|-- tinyxml
(TinyXml is a simple, small, C++ XML parser)
|-- tremor
(I stream and file decoder provides an embeddable,integer-only library)
|-- webkit
(浏览器核心)
|-- wpa_supplicant
(无线网卡管理)
|-- xmlwriter
(XML 编辑工具)
|-- yaffs2
(yaffs文件系统)
(a general purpose data compression library)
frameworks 目录
(核心框架——java及C++语言)
(基本内容)
(?都是xml文件,定义了java的api?)
|-- camera
(摄像头服务程序库)
(重要命令:am、app_proce等)
(核心库)
(字体和声音等数据文件)
|-- graphics
(图形相关)
|-- include
(头文件)
|-- keystore
(和数据签名证书相关)
|-- location
(地区库)
(媒体相关库)
(蓝牙传输库)
|-- opengl
(2D-3D加速库)
|-- packages
(设置、TTS、VPN程序)
(XML解析器)
|-- services
(各种服务程序)
|-- telephony
(电话通讯管理)
|-- test-runner
(测试工具相关)
(各种测试)
(一些叫不上名的工具)
(无线网络)
(可选部分)
|-- com.google.android
(有个framework.jar)
|-- com.google.android.googlelogin
(有个client.jar)
(standard message elements)
`-- policies
(Product policies are operating system directions aimed at specific uses)
(MID设备)
(手机类设备一般用这个,与锁屏有关的代码)
hardware 目录
(部分厂家开源的硬解适配层HAL代码)
|-- broadcom
(博通公司)
(无线网卡)
|-- libhardware
(硬件库)
|-- include
(头文件)
`-- modules
(Default (and possibly architecture dependents) HAL modules)
|-- gralloc
(gralloc显示相关)
`-- overlay
(Skeleton for the &overlay& HAL module.)
|-- libhardware_legacy
(旧的硬件库)
|-- flashlight
|-- include
(头文件)
(旧的挂载器)
(模拟器)
|-- qemu_tracing
(模拟器跟踪)
|-- uevent
(uevent)
|-- vibrator
(高通7k处理器开源抽象层)
|-- libaudio
(声音库)
|-- libaudio-qsd8k
(qsd8k的声音相关库)
|-- libcamera
(摄像头库)
|-- libcopybit
(copybit库)
|-- libgralloc
(gralloc库)
|-- libgralloc-qsd8k
(qsd8k的gralloc库)
|-- liblights
(背光库)
`-- librpc
(无线电抽象层)
|-- include
(头文件)
|-- libril
|-- reference-cdma-sms
(cdma短信参考)
|-- reference-ril
(ril参考)
(ril后台服务程序)
(ti公司开源HAL)
(omap3处理器)
|-- dspbridge
|-- libopencorehw
(opencore硬件库)
|-- liboverlay
(overlay硬件库)
|-- libstagefrighthw
(stagefright硬件库)
(omx组件)
(无线网卡)
packages 目录
(应用程序库)
|-- AlarmClock
|-- Bluetooth
|-- Browser
(浏览器)
|-- Calculator
(计算器)
|-- Calendar
|-- Camera
|-- CertInstaller
(在Android中安装数字签名,被调用)
|-- Contacts
(拨号(调用)、联系人、通话记录)
|-- DeskClock
(桌面时钟)
|-- Gallery
(相册,和Camera类似,多了列表)
|-- Gallery3D
(?3D相册)
|-- GlobalSearch
(为google搜索服务,提供底层应用)
|-- GoogleSearch
(google搜索)
|-- HTMLViewer
(浏览器附属界面,被浏览器应用调用,同时提供存储记录功能)
(即时通讯,为手机提供信号发送、接收、通信的服务)
|-- Launcher
(登陆启动项,显示图片框架等等图形界面)
|-- Launcher2
(登陆启动项,负责应用的调用)
(?彩信业务)
(音乐播放器)
|-- PackageInstaller
(安装、卸载程序的响应)
(电话拨号程序)
|-- Provision
(预设应用的状态,使能应用)
|-- Settings
(开机设定,包括电量、蓝牙、设备信息、界面、wifi等)
|-- SoundRecorder
(录音机,可计算存储所需空间和时间)
(接收和发送短信)
-------○1
|-- Updater
`-- VoiceDialer
(语音识别通话)
|-- inputmethods
(输入法)
|-- LatinIME
(拉丁文输入法)
|-- OpenWnn
(OpenWnn输入法)
`-- PinyinIME
(拼音输入法)
|-- providers
(提供器,提供应用程序、界面所需的数据)
|-- ApplicationsProvider
(应用程序提供器,提供应用程序启动项、更新等)
|-- CalendarProvider
(日历提供器)
|-- ContactsProvider
(联系人提供器)
|-- DownloadProvider
(下载管理提供器)
|-- DrmProvider
(创建和更新数据库时调用)
|-- GoogleContactsProvider
(联系人提供器的子类,用以同步联系人)
|-- GoogleSubscribedFeedsProvider(设置信息提供器)
|-- ImProvider
|-- ManagementProvider
|-- MediaProvider
(媒体提供器,提供存储数据)
|-- TelephonyProvider
(彩信提供器)
|-- UserDictionaryProvider
(用户字典提供器,提供用户常用字字典)
`-- WebSearchProvider
|-- services
|-- EasService
`-- LockAndWipe
`-- wallpapers
(基本墙纸,系统内置墙纸)
|-- LivePicker
(选择动态壁纸)
|-- MagicSmoke
(壁纸特殊效果)
`-- MusicVisualization
(音乐可视化,图形随音乐而变化)
○1里面有一个隐藏的.git文件夹,内容都是一样的,没有有意义的代码,config看似乎是一个下载程序,因此认为这些文件夹下没有实质东西。
prebuilt 目录
(x86和arm架构下预编译的一些资源)
|-- android-arm
(arm-android相关)
|-- gdbserver
(gdb调试器)
`-- kernel
(模拟的arm内核)
|-- android-x86
(x86-android相关)
`-- kernel
|-- common
(通用编译好的代码,应该是java的)
|-- darwin-x86
(drawin x86平台)
`-- toolchain
(工具链)
|-- arm-eabi-4.2.1
|-- arm-eabi-4.3.1
`-- arm-eabi-4.4.0
|-- darwin-x86_64
(drawin x86 64bit平台)
|-- linux-x86
(linux x86平台)
`-- toolchain
(工具链,我们应该主要用这个)
|-- arm-eabi-4.2.1
|-- arm-eabi-4.3.1
|-- arm-eabi-4.4.0
`-- i686-unknown-linux-gnu-4.2.1
(x86版编译器)
|-- linux-x86_64
(linux x86 64bit平台)
|-- windows
(windows平台)
`-- windows-x86_64
(64bit windows平台)
system 目录
(底层文件系统库、应用及组件——C语言)
|-- Bluetooth
(蓝牙相关)
(系统核心工具盒接口)
(adb调试工具)
(cpio工具,创建img)
|-- debuggerd
(调试工具)
|-- fastboot
(快速启动相关)
|-- include
(系统接口头文件)
(init程序源代码)
|-- libacc
(轻量级C编译器)
|-- libctest
(libc测试相关)
|-- libcutils
(libc工具)
|-- liblog
|-- libmincrypt
(加密库)
|-- libnetutils
(网络工具库)
|-- libpixelflinger
(图形处理库)
|-- libsysutils
(系统工具库)
|-- libzipfile
|-- logcat
(查看log工具)
|-- logwrapper
(log封装工具)
|-- mkbootimg
(制作启动boot.img的工具盒脚本)
|-- netcfg
(网络配置netcfg源码)
(google最新手机的代码)
|-- rootdir
(rootfs,包含一些etc下的脚本和配置)
(shell代码)
|-- toolbox
(toolbox,类似busybox的工具集)
(SD卡管理器)
|-- extras
(额外工具)
|-- latencytop
(a tool for software developers ,identifying system latency happen)
|-- libpagemap
(pagemap库)
|-- librank
(Java Library Ranking System库)
|-- procmem
(pagemap相关)
|-- procrank
(Java Library Ranking System相关)
|-- showmap
(showmap工具)
|-- showslab
(showslab工具)
(声音相关)
(su命令源码)
(一些测试工具)
`-- timeinfo
(时区相关)
(无线相关)
(ti网卡相关工具及库)
vendor 目录
(厂家定制内容)
(android open source project)
`-- products
(一些板级规则)
(HTC公司)
|-- common-open
(通用部分)
(解压img用的工具)
|-- dream-open
(G1开放部分)
|-- prebuilt-open
(预编译开放部分)
`-- sapphire-open
(sapphire这款型号开放内容)
|-- pv-open
(没东西)
(里面基本是空的)
`-- sample
(google提供的样例)
|-- client
`-- upgrade
|-- frameworks
`-- PlatformLibrary
(平台库)
|-- products
|-- sdk_addon
(sdk添加部分)
`-- WVGAMedDpi
(WVGA适用的图片)
四、Android 源码的编译(make)
源码下载完成后接下来就是对源码的编译了,下载好源码后,会在android目录下有一个MakeFile文件,然后直接在终端下输入make既可以对android源码进行编译,在编译的过程中依然会出现很多的错误,接下来,参照网上给出的一些错误和解决方法:
1、/usr/bin/ld: cannot find -lz
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决方法: sudo apt-get install zlib1g-dev & &sudo apt-get install lib64z1-dev
2、/bin/bash: bison: command not found
Yacc: aidl &= frameworks/base/tools/aidl/aidl_language_y.y
bison -d &-o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127
解决方法:sudo apt-get install bison
3、/bin/bash: flex: command not found
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp: In function ‘int yyparse()’:
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1827: warning: deprecated conversion from string constant to ‘char*’
out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp:1970: warning: deprecated conversion from string constant to ‘char*’
Lex: aidl &= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
解决方法: sudo apt-get install flex
4、/usr/bin/ld: cannot find -lncurses
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
解决方法:sudo apt-get install libncurses5-dev
5、fatal error: GL/glx.h: No such file or directory
development/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp:22: fatal error: GL/glx.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1
解决方法:sudo apt-get install libgl1-mesa-dev
6、sh: gperf: not found
target Generated: libwebcore &= external/webkit/Source/JavaScriptCore/create_regex_tables
Generating CSSPropertyNames.h &= CSSPropertyNames.in
sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 140.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h] Error 25
make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/Source/WebCore/css/CSSPropertyNames.h'
解决方法:sudo apt-get install gperf
五、编译SDK
编译SDK可以得到与源码同步的SDK,还会生成一些tools,在源码根目录下:
$ sudo make PRODUCT-sdk-sdk
编译生成的SDK在out/host/linux-x86/SDK下。之后如果在ubuntu下使用eclipse进行开发,可以使用你编译的SDK。
下面就在模拟器中运行镜像,建议切到root用户下,首先配置几个环境变量,将自己编译的SDK设为优先级最高,在源码根目录下执行:
$ update-alternatives --install /usr/bin/AndroidSDK AndroidSDK ./out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86 255
这样会在/etc/alternatives下生成一个指向该SDK目录的软连接AndroidSDK,这个目录主要存放一些系统默认打开的程序的信息和配置。那么/usr/bin/AndroidSDK就指向这个软连接。接着执行:
$ gedit ~/.bashrc
在文件末尾添加:
export ANDROID_SDK_HOME=/usr/bin/AndroidSDK
export PATH=$ANDROID_SDK_HOME/tools:$PATH
export ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
接着就可以执行:
$&emulator
运行的就是你编译的映像。执行emulator 命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而
Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img。模拟器运行需要这四个文件,如果你编译了内核则可以使用自己的Kernel镜像,可用于android移植等。
六、单独编译模块
如果你不想编译整个系统,就想编译某一个应用程序,可以使用mmm命令,使用之前,在源码目录下先要执行:
$ build/envsetup.sh
这样会生成一些命令,有m即make、mm编译当前目录下所有模块、mmm编译指定目录下所有模块。你可以把packages/apps/Music应用的application name改成MyMusic(AndroidManifest.xml中),然后执行:
$ mmm packages/apps/Music
在out/target/product/generic/system/app中就可以看见Music.apk,然后执行:
$ make snod
重新生成system.img。
以上仅仅只是我个人遇到的问题,然后在网上查找资料解决后,运行成功,如果遇到其他问题,可以在网上寻找其他的解决办法,另外可以参考官网:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:114348次
积分:1574
积分:1574
排名:第18659名
原创:41篇
评论:36条
(1)(1)(1)(1)(1)(6)(9)(1)(3)(7)(12)(1)(1)

我要回帖

更多关于 droid4x模拟器ios 的文章

 

随机推荐