当前位置:首页 » 安卓系统 » android4源码

android4源码

发布时间: 2022-07-19 17:28:42

㈠ 如何编辑android 系统源码

1、通过 ubuntu 软件中心安装 wine;
2、通过 ubuntu 软件中心安装 winetricks;
3、通过 winetricks 在 shell中输入: winetricks mfc42

1、通过 wine windows 的方式启动代理服务器
2、设置浏览器代理服务器
3、设置shell代理服务器:
在shell中输入 sudo gedit /etc/bash.bashrc
在文件 /etc/bash.bashrc 中添加

通过shell安装如下的组件:
1、sudo apt-get install bison g++-multilib git gperf libxml2-utils
2、新建一个存放源码的目录,如:mkdir ~/andorid/source
3、在源码目录中输入命令:repo init -u -b android-4.0.1_r1
其中: android-4.0.1_r1是android源码的版本,更多的版本可以通过下面的方式查询:

4、修改source/.repo/manifest/default.xml 文件中的 fetch 的值为:
git://Android.git.linaro.org/

通过如下的指令来设置邮箱和用户名
git config --global user.name "<your name>" ----修改用户名git config --global user.email "<your email>" ----修改email
5、在source目录下输入指令:repo sync
便开始了代码的下载
方便他人亦是方便自己,如果觉得还行就点下下边的投票吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!

㈡ android系统源码有多少行

大概有10G的源代码,一Byte一个字符,也就是说有超过100亿个字符,每行按标准80字符来算的话,超过1亿行。开放的WinXP系统有2亿行,从数量级上来看的话,应该差不多。Android 4.4,是由Google公司制作和研发的代号为KitKat的手机操作系统,于北京时间2013年9月4日凌晨对外公布了该Android新版本的名称,为Android 4.4(代号 KitKat 奇巧)。据悉,该代号来自雀巢的KitKat巧克力。"Kit Kat"原本是雀巢公司的一款巧克力名称。谷歌表示,他们非常感谢雀巢授权使用该名称,但使用的时候会将中间的空格去掉。Android 4.4 KitKat针对RAM占用进行了优化,甚至可以在一些仅有512MB RAM的老款手机上流畅运行。它也进一步优化了系统在低配硬件上的运行效果, 支持内核同页合并 KSM,zRAM 交换,似乎是为了更好地在众多智能穿戴设备上运行。
是指sdk的源码,还是android操作系统的源码,不过都有10G左右,另外sdk的源码是用git管理的,一次下载后,用git check就可以切换到各个版本。Android SDK是用于开发Android上java应用程序的,另外发布Android NDK,可以添加一些C语言写的链接库,至于linux代码,可以在Android源代码中找到(SDK程序中只有编译好的测试映像)。应用程序开发用不到Linux代码(搞嵌入式开发才会用到,而SDK不负责底层开发)。

㈢ 如何在32位ubuntu11.10 下编译android 4.0.1源码和goldfish内核

一准备工作

1安装javasdk6
(1)从jdk官方网站http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u29-download-513648.html下载jdk-6u29-linux-i586.bin文件。
(2)执行jdk安装文件

[html] view plain
$chmod a+x jdk-6u29-linux-i586.bin
$jdk-6u29-linux-i586.bin

(3)配置jdk环境变量

[html] view plain
$sudo vim /etc/profile
[html] view plain
#JAVAEVIRENMENT
exportJAVA_HOME=/usr/lib/java/jdk1.6.0_29
exportJRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后退出编辑,并重启系统。
2安装依赖包

[html] view plain
$sudo apt-get install git-core gnupg flex bison gperf build-essential\
zipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libs\
x11proto-core-devlibx11-devlib32readline5-devlib32z-dev\
libgl1-mesa-devg++-multilibmingw32tofrodospython-markdown\
libxml2-utils

3用repo工具下载源码
(1)初始化repo

[html] view plain
$cd ~
$mkdir bin
$curlhttps://dl-ssl.google.com/dl/googlesource/git-repo/repo>~/bin/repo
$chmod a+x ~/bin/repo
$exportPATH=$PATH:~/bin(导出环境变量)

(2)下载android最新源码

[html] view plain
$mkdir android
$cd android
$ repo init -u https://android.googlesource.com/platform/manifest -bandroid-4.0.1_r1
...(输入用户名和邮箱名)
$repo sync -j5
...(此处用5个线程开始下载源码,下载过程及其漫长,需要耐心等待)

二 编译源码
1开始编译

[html] view plain
$source build/envsetup.sh
includingdevice/samsung/maguro/vendorsetup.sh

includingdevice/samsung/tuna/vendorsetup.sh

includingdevice/ti/panda/vendorsetup.sh

includingsdk/bash_completion/adb.bash

$make-j4(此处用4个线程编译)

编译完成后,会看到类似的输出:

[html] view plain
Targetramdisk:out/target/proct/generic/ramdisk.img
Targetuserdatafsimage:out/target/proct/generic/userdata.img
Installedfilelist:out/target/proct/generic/installed-files.txt

2编译遇到的问题
编译错误:

[html] view plain
<命令行>:0:0:错误:“_FORTIFY_SOURCE”重定义[-Werror]

<built-in>:0:0:附注: 这是先前定义的位置

cc1plus:所有的警告都被当作是错误

make:*** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]错误 1

原因:
因机器上的gcc版本过高,需替换成4.4.6重新进行编译。
解决方法:
1)安装4.4版本的gcc和g++

[html] view plain
$ sudo apt-get install gcc-4.4
$ sudo apt-get install g++-4.4

2)设置gcc版本,使gcc链接到gcc-4.4

[html] view plain
$ ls -l /usr/bin/gcc*

lrwxrwxrwx 1 root root 7 2011-11-01 23:56 /usr/bin/gcc -> gcc-4.6

-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 /usr/bin/gcc-4.4

-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 /usr/bin/gcc-4.6

$ cd /usr/bin
$ sudo mv gcc gcc.bak
$ sudo ln -s gcc-4.4 gcc

3)设置g++版本,使g++链接到g++-4.4

[html] view plain
$ sudo mv g++ g++.bak
$ sudo ln -s g++-4.4 g++

4)设置完毕后,重新进行编译即可

3从模拟器启动编译后的镜像文件
1)设置环境变量:

[html] view plain
export PATH=~/android/out/host/linux-x86/bin:$PATH

export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic

其中linux-x86/bin存放模拟器emulator工具,proct/generic存在编译后的镜像文件。

2)启动模拟器

[html] view plain
$emulator

emulator:WARNING: system partition size adjusted to match image file (162 MB >66 MB)

启动后的截图:

三 编译androidgoldfish内核
1)进入android4.0.1源码目录,下载goldfish内核源码

[html] view plain
$ mkdir kernel
$ cd kernel
$ git clone http://android.googlesource.com/kernel/goldfish.git
$ cd goldfish
$ git branch -a
* (no branch)

master

remotes/origin/HEAD -> origin/master

remotes/origin/android-goldfish-2.6.29

remotes/origin/master

$ git checkout remotes/origin/android-goldfish-2.6.29

2)修改Makefile

[html] view plain
goldfish$ gedit Makefile

修改

[html] view plain
ARCH ?=$(SUBARCH)
CROSS_COMPILE ?=



[html] view plain
ARCH ?=arm
CROSS_COMPILE ?=arm-eabi-

3)导出交叉编译器目录为环境变量
$ export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

4)编译内核

[html] view plain
goldfish$ make goldfish_armv7_defconfig

goldfish$ make

编译完成后,可看到类似如下的输出:

[html] view plain
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready

5)从模拟器中启动内核镜像

[html] view plain
$emulator -kernel ~/android/kernel/goldfish/arch/arm/boot/zImage &

启动模拟器后,可从Settings->System->AboutPhone中查看内核版本信息。

㈣ 如何查看android-support-v4支持包中的源码

查看android-support-v4支持包中的源码

关联源码和support包源码

  1. 点击工程,选择Properties

㈤ android怎么修改源码

在Android界面的系统status bar上添加home,back,menu三个菜单,并完成对应的系统功能。并有higlight效果,修改status bar 高度和status bar上的文字尺寸。

这需要修改android sdk才能完成,我用的是eclair.下面就我的操作进行叙述。

1.首先完成界面显示效果。

需要修改文件

./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java,仿照mBatteryIcon等icon的添加方式添加自定义的icon,图片名称指定就好了。另外还要记得修改./frameworks/base/core/res/res/values/arrays.xml,这里定义了icon的slot,并且决定了icon的摆放顺序。

这样,你需要的icon按键就可以显示在系统的status bar上面了。

2.判断touch event是否按动了某个icon

需要修改的文件

./frameworks/base/services/java/com/android/server/status/StatusBarView.java

首先在onTouchEvent函数中,获取当前event的坐标,然后比较是否在某个按键范围之内。由于系统对于statusBar的范围已经有了定义,所以这里只需要比较横坐标就可以了。

其次,也是这一步最关键的,怎么获取具体某一个icon的左右边界坐标呢?系统的status bar左边显示的图标都是notification, 右边显示的是系统icon. 也就是说左边icon属于mNotificationIcons,右边的icon属于mStatusIcons. 在文件StatusBarView.java中出现的offset = getViewOffset(mStatusIcons),得到mStatusIcons的最左边的icon的left横坐标。用N = mStatusIcons.getChildCount()得到共有几个系统icon,其中包含visibility为false的icons.用mStatusIcons.getChildAt(N-i)得到的是从右边数第i个的icon view. 这个view的getLeft()+offset就是这第i个icon的左边横坐标,对应的getRight()+offset就是这第i个icon的右边横坐标。本例中home键是右边第2个icon.

3.定义icon响应事件

这里使用的方法是在StatusBarView.java中向

./frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java发送一个Broadcast,让StatusBarPolicy来完成具体的事件操作。这里需要注意的是不仅要在./frameworks/base/core/java/android/content/Intent.java中定义intent,还要在StatusBarPolicy的构造函数中添加该intent的过滤动作,即filter.addAction(Intent.ACTION_BACKICON_CHANGED).例如,按动了back键,如果当前事件为action_up,就向系统发送一个keyEvent,keyCode为KeyEvent.KEYCODE_BACK. 这里借用的是./frameworks/base/cmds/input/src/com/android/commands/input/Input.java中的sendKeyEvent函数,直接拷贝过来,按照需要稍微修改一下形参就可以了,过程不要修改。

需要说明的是,当点击statusBar可以拉出来一个notification列表,当这个列表显示出来的时候,这三个back, menu, home键的响应速度会非常慢,所以这时不响应事件并隐藏这三个键。具体做法是在StatusBarView的onTouchEvent()中判断mService.mExpanded或者 mService.mTracking为真时就不做响应。mService是StatusBarService对象。隐藏三个键也是用Broadcast来做的,但这个intent是由StatusBarServie发出来的,当mExpandedVisible = false时显示,当mExpandedVisible = true时隐藏。

这里还同时完成了highlight换图的动作,也是用Broadcast来做得,处理过程一样,就是需要区分action_down和action_up就可以了。

4.调整status bar的高度

如果你需要显示较大的屏幕尺寸,同时statusBar的高度要拉大,上面的icon的size也需要调大。为了协调一致,显示时间的字体和notification显示的日期的字体也需要调大。具体做法如下:

a.调节status bar icon的size: 只调节status_bar.xml的textSize标签似乎不起作用,同时又修改了./base/services/java/com/android/server/status/StatusBarIcon.java的t.setTextSize(32);语句才成功。不知道修改status_bar.xml的<com.android.server.status.AnimatedImageView>标签下的layout_height值是不是必须的,反正我是一起都给改了。

b.调节status bar height: ./base/core/res/res/values/dimens.xml 找得我好辛苦!不知道还需不需要修改./base/core/res/res/values/themes.xml中的Window attributes的windowTitleSize值,反正我也给改了。

c.调节notification显示日期字体的大小,修改status_bar.xml的<com.android.server.status.DateView>的textSize值。

到这里,就完成了所有工作,看看效果吧。

㈥ 自己可以编译安卓源码吗

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ㈦ 如何查看 android-support-v4.jar 源码

    想查看android-support-v4.jar的源码的时候你会发现悲剧了,看不了,那是因为我们没关联android-support-v4.jar的源码,接下来就教大家怎么关联android-support-v4.jar的源码


    Android SDK在extras目录中同样提供了support包的源码,当然前提是你使用Android SDK Manager下载过了Android Support Library。当我们使用到support包的时候,它一般都会静静的躺在libs目录里,这个时候我们只需要在同一个目录下建一个properties文件,名字跟你所用的support jar包相同,即android-support-v4.jar会有一个对应的android-support-v4.jar.properties的文件

    ㈧ 在源码中怎么导入android-support-v4

    将libs文件夹中的android-support-v4添加到构建路径,选中文件夹中的android-support-v4.jar包,鼠标右键选中“Build Path——Add to Build Path”,那么在当前项目的Referenced Libraries下多了添加的android-support-v4包,如下图:

    选中当前项目,鼠标右键“Build Path——Configure Build Path”在右边窗口中看到上一步添加的android-support-4包,然后展开,看到Source attachment:(None),说明我们的源码还没关联,点击“Edit”按钮开始关联,如下图:

    在弹出的“Source Attachment Configure”配置窗口中,第一个选项“Workspace location”选择当前工作间的路径,第二个选项“External location”选择外部的路径,我们的android-support-v4源码存放在sdk的Extras文件夹中,我们选择第一个选项,如下图:

    选择“External location”后,我们发现旁边有“External file”和“External folder”两个按钮,External file选择的是JAR或ZIP压缩包,External folder选择的是文件夹,这里我们选择“External folder”,如下图:

    在本地找到安装SDK所在目录,并在该目录中找到extras文件夹,依次进入到src目录(/sdk/extras/android/support/v4/src"),选中src文件夹即可,如下图:

    在MainActivity类中,声明Fragment,光标放置在当前声明的Fragment类,按下F3(或Ctrl+点击),轻松查看到Fragment对应的源码,如果无法解决你的问题,可以给我留言,谢谢采纳!<^_^>如下图:

    ㈨ 怎样查看 Android APP源代码

    将apk文件拷贝至sdcard上。
    命令顺序如下:

    进入Android sdk文件夹/tools目录下
    输入adb shell
    输入su
    输入cd data
    输入cd app
    这时就可以看到你安装的所有的apk文件。输入cp 空格 对应的apk 空格 /sdcard/
    这样就将apk文件拷贝出来了。
    将apk文件后缀直接变成rar格式,可以看到熟悉的目录结构了,

    其中xml文件打开后都是二进制的,无法查看。
    这时就用到了一个android4me的AXMLPrinter2工具。(请自行网络搜索)
    输入以下命令,将xml文件解析出来
    java -jar AXMLPrinter2.jar showtimes_list.xml
    此命令是在命令行中查看此showtimes_list.xml
    将showtimes_list.xml生成xml文件,则输入以下命令:
    java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
    目前进行到这一步,只能看到xml文件的内容,其工程中的java源文件还是看不到,看目录结构下有一个classes.dex文件,我们需要将dex文件变为jar文件。
    这里用到了另一个工具dex2jar。(自行搜索下载)
    在Windows下解压之后的目录如下图所示:

    在命令行中,进入到此目录下:
    在Windows下,输入以下命令:
    dex2jar.bat c:classes.dex
    运行完之后,在C盘会多一个classes.dex.dex2jar.jar文件,此文件就是我们需要的jar文件。
    利用jd-gui,将jar文件反向工程为java代码。(请自行搜索下载)
    它分为Windows、Linux、和max三个版本,这里我下载的是Windows版本的。
    解压之后,双击运行exe文件,选择classes.dex.dex2jar.jar文件,相应的jar文件中的Java文件就被反向工程显示出来了!

    ㈩ Android Studio怎么关联supportV4的源码

    如果在有用到过viewpager或者fragmentActivity等一些v4包下的类,当我们按F3时无法查看到源码,这个时候就需要我们关联该源码,该源码的关联与android源码的关联不一样。

    大家看图:

    本人的源码路径为:E:\ADT22\android-sdk\android-sdk\extras\android\support\v4\src (这个看个人的路径 v4的源码就是sdk下面的extras\android\support\v4\src这个路径),复制到建立的android-support-v4.jar.properties文件下,记住是双反斜线。

    路径复制进去后,请将你自己的工程关闭后再打开,此时进去选择FragmentActivity后F3就能看到源码了。如下图:V4 源码已经成功的关联上。

    热点内容
    如何开启电脑服务器无法上网 发布:2025-01-23 17:37:06 浏览:391
    安卓手机锁了怎么开 发布:2025-01-23 17:21:18 浏览:136
    经济学算法 发布:2025-01-23 17:13:46 浏览:421
    如何和软件联系服务器 发布:2025-01-23 17:13:00 浏览:800
    javacrc16算法 发布:2025-01-23 17:11:31 浏览:225
    编程加图片 发布:2025-01-23 17:10:33 浏览:567
    中国风网站源码 发布:2025-01-23 17:05:56 浏览:679
    pythonfilter用法 发布:2025-01-23 17:04:26 浏览:569
    java转number 发布:2025-01-23 16:58:11 浏览:477
    解压的英语作文 发布:2025-01-23 16:45:05 浏览:969