cyanogenmodԴ??
在尝试编译Android 4.0.x版本的源码时,遇到的问题多种多样。以下是将这些问题及其解决方案列举出来的内容,条目之间换行,以清晰的条目编号呈现。
1. 错误:/usr/include/gnu/stubs.h:7:: error: gnu/stubs-.h: No such file or directory
解决:sudo apt-get install libc6-dev-i
2. 错误:make: *** [out/host/linux-x/obj/EXECUTABLES/acp_intermediates/acp] error 1
解决:sudo apt-get install g++-4.4-multilib
3. 错误:external/clearsilver/cgi/cgi.c:: fatal error: zlib.h: No such file or directory
解决:sudo apt-get install zlib1g-dev
4. 错误:/usr/bin/ld: cannot find -lz
解决:sudo apt-get install libz1-dev
5. 错误:bison -d -o out/host/linux-x/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
解决:sudo apt-get install bison
6. 错误:Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
解决:sudo apt-get install flex
7. 错误:/usr/bin/ld: cannot find -lncurses
解决:sudo apt-get install libncurses5-dev
8. 错误:prebuilt/linux-x/sdl/include/SDL/SDL_syswm.h:: fatal error: X/Xlib.h: No such file or directory
解决:sudo apt-get install libx-dev
9. 错误:sh: gperf: not found
解决:sudo apt-get install gperf
. 错误:build/core/java.mk:9: *** bin: Target java module does not define any source or resource files. Stop.
解决:删除源码根目录下的mfc 启动 源码bin文件夹,这个文件夹是导入eclipse时创建的。
. 错误:/usr/bin/ld: cannot find -lX
解决:sudo ln -s /usr/lib/i-linux-gnu/libX.so.6 /usr/lib/i-linux-gnu/libX.so
. 错误:development/tools/emulator/opengl/host/libs/Translator/GLDispatch.cpp:: fatal error: GL/glx.h: No such file or directory
解决:sudo apt-get install libgl1-mesa-dev
. 错误:host SharedLib: libEGL_translator (out/host/linux-x/obj/lib/libEGL_translator.so)
解决:sudo apt-get install libglu1-mesa-dev
. 错误:host StaticLib: libGLcommon (out/host/linux-x/obj/STATIC_LIBRARIES/libGLcommon_intermediates/libGLcommon.a)
解决:sudo ln -s /usr/lib/i-linux-gnu/mesa/libGL.so.1 /usr/lib/i-linux-gnu/libGL.so
. 错误:make: *** [out/host/linux-x/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
后来发现了,原来是Ubuntu .里的gcc和g++版本太高了,于是执行下面的操作:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
把默认的4.6版本换为了4.4,继续编译源码,又出现了另一个错误,大致提示为:
g++ selected multilib '' not installed
继续奋战吧,安装相应的工具吧:sudo apt-get install g++-4.4-multilib,现在正在make -j8(开启多线程编译(不推荐),可能有时候会出现问题,最好是直接make)
2. 解决各种依赖问题
首先安装一些库
?View Code BASH
1 sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev
2 sudo apt-get install libwxgtk2.6-dev squashfs-tools build-essential
3 sudo apt-get install zlib1g-dev pngcrush schedtool ia-libs libncurses5-dev
这些库可能不全,如果出现问题,论文附件 源码再google一下吧
3. error: “_FORTIFY_SOURCE” redefined [-Werror]
这个问题,据说与gcc版本有关,4.4版不会出现。
后来在google code上找到了使用gcc 4.6编译的方法
修改build/core/combo/HOST_linux-x.mk文件line
?View Code BASH
1 -HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
2 +HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
这是CyanogenMod打上的补丁
4. No rule to make target ‘out/target/product/generic/obj/lib/libcamera.so’
修改 /home/Android-2.3.4/frameworks/base/services/camera/libcameraservice/Android.mk,USE_CAMERA_STUB:=false -> true
?View Code BASH
1 LOCAL_PATH:= $(call my-dir)
2
3 # Set USE_CAMERA_STUB if you don't want to use the hardware camera.
4
5 # force these builds to use camera stub only
6 ifneq ($(filter sooner generic sim,$(TARGET_DEVICE)),)
7 USE_CAMERA_STUB:=true
8 endif
9
#########CHANGE THIS LINE############
USE_CAMERA_STUB:=true
ifeq ($(USE_CAMERA_STUB),)
USE_CAMERA_STUB:=false
endif
CyanogenMod简介
CyanogenMod,通常简称为CM,是一个全球知名的Android第三方编译团队的杰作,其在Android 2.1版本的内核CM5系列ROM尤其受到广大用户的欢迎,推动了许多用户从Android 1.6升级到2.1的第三方系统体验。这个团队在Google之前就为众多手机提供了稳定的1.6版本ROM,展示了他们的技术实力和创新精神。[1]
至今,CyanogenMod推出了多个系列版本,包括适应Android 1.6的CM4,Android 2.1的CM5,接着是Android 2.2的CM6,Android 2.3的scale源码分析CM7,以及Android 4.0的CM9。然而,由于Google并未公开Android 3.*的源代码,CM8的开发就被跳过了。随后,CM系列继续发展,包括了Android 4.1的CM和Android 4.2的CM.1。[2]
值得注意的是,CyanogenMod的核心理念是开源和社区驱动,它提供了一个免费且经过改进的Android操作系统版本,让用户能够享受到更多自定义和优化的特性。这个平台深受发烧友和寻求个性化体验的用户喜爱,不断推动着Android生态系统的创新和发展。[3]
CyanogenMod开发
自年9月HTC Dream手机发布后,Android社区因一款名为"root"的权限获取方法而对Android系统产生了新的探索。这一方法结合Android的开源特性,使得手机固件修改与重装变得可能,慧管家源码无需对所有手机进行改动,如开发手机和Nexus One就无需进行此类操作。
目前,CyanogenMod的最新版本基于Android 4.0进行开发,包含了大量自定义的源代码。最初由Steve Kondik创建的CyanogenMod,后来在xda-developers社区的助力下,强化了主界面、应用调用程序和网页浏览器,甚至加入了BusyBox等工具。用户可以通过CyanogenMod Updater获取新版本更新,但自5.0版本后,这个程序不再可用,需通过Rom Manager寻找固件升级。
起初,CyanogenMod包含Google的部分应用如Gmail和Android Market,然而Google在年9月发出律师函,ftp传输源码要求团队停止发布,引发社区反弹,认为此举违背了Google的“不作恶”理念。CyanogenMod曾一度暂停,随后在双方协调后恢复,但仍需用户自行下载Google应用。Steve Kondik被Samsung和Sony招揽,CyanogenMod的开发团队也得到了更多的支持,如CyanogenMod 6基于Android 2.2开发,支持众多型号的手机,从年开始逐步迭代,从Android 2.3 Gingerbread到Android 4.0 Ice Cream Sandwich,再到4.1 Jelly Bean和4.2 Jelly Bean,每一代都带来了显著的改进和优化。
年,CyanogenMod .1正式为部分Nexus和三星设备带来了“基本稳定”的Milestone 1版本,尽管对设备有一定的要求,但对于日常使用已经足够。对于未能获得官方Android 4.2的用户,CyanogenMod .1无疑提供了另一种期待和选择。
CyanogenMod系统
CyanogenMod是一个源自开源Android系统的定制固件,为部分特定手机提供非官方的升级选择。这个系统增强了许多官方Android或手机制造商未包含的功能,比如支持FLAC无损音频格式,允许多点触控操作,程序可从SD卡运行,优化了压缩缓存,增加了丰富的APN列表,提供了Wi-Fi、蓝牙和USB网络共享等功能。尤其值得一提的是,CyanogenMod是首个采用BFS作为任务管理器的操作系统,承诺提供比官方固件更高效且稳定的性能。
年9月,随着HTC Dream手机的发布,Android社区发现了一种在Android的Linux子系统中获取“root”权限的方法,这得益于Android的开放源代码特性,使得手机固件可以自由地进行修改和重装。例如,像Android开发手机和Nexus One这样的设备,因其开发用途而无需修改即可享受这些特性。
目前,CyanogenMod固件是基于Android 2.3版本开发的,且其定制部分融合了Cyanogen(Steve Kondik)的原始代码和xda-developers社区的增强功能,如强化的主屏幕、呼叫程序和网页浏览器,以及其他实用工具如busybox等。CyanogenMod用户可以通过名为CyanogenMod Updater的应用程序来获取新版本更新,并从Android Market下载安装。
CyanogenMod刷机和刷内核帮Android系统优化介绍_CyanogenMod刷机和刷内核帮Android系统优化是什么
在Android设备的使用中,优化性能至关重要,尤其是对于频繁刷机或追求性能提升的用户。刷机时,如CyanogenMod,虽然可能会遇到重启和耗电问题,但这正是系统优化的切入点。CyanogenMod系列,如CM 7.2和CM 9,提供了对Android 2.3.7和4.0.4的优化,CM 7.2因其广泛支持和成熟度成为了首选。CM 9虽然官方支持有限,但民间高手的移植工作使得它在个性化和性能提升上也有不错的表现。
除了刷机,刷内核是另一个优化手段。它能够提供显著的性能提升,如超频、内存管理等,但需谨慎操作,确保与手机版本和所刷ROM兼容。内核更新通常比ROM更快,持续尝试新内核可以发现更好的性能和功耗表现。
精简内置应用也是优化策略之一,尤其针对Google服务。Android的后台运行机制导致不必要的进程可能消耗大量资源,通过RE管理器等工具,可以剔除不常用的应用,以提高流畅度。但是,操作前需备份以防意外,并尽量寻找适用于特定机型和ROM的精简列表。
此外,还可以通过调整贴图差值抖动和位透明度来优化GPU加速,尽管这可能影响画质。而在Android 4.0及以上版本,启用GPU加速可以减轻CPU负担,但需注意可能的兼容性问题和个别程序的渲染效果。
总的来说,优化Android系统需要从多个层面进行,包括选择热门机型、使用优化的ROM、谨慎刷内核和精简不必要的应用,以实现最佳性能。记住,选择高普及率的设备和利用源代码开放的优势,如Nexus系列,能提供更好的优化基础。
2024-12-26 12:31
2024-12-26 11:33
2024-12-26 10:50
2024-12-26 10:46
2024-12-26 10:15