当前位置:首页 » 安卓系统 » android开发源码

android开发源码

发布时间: 2022-05-16 09:50:48

‘壹’ android 的源码开发必须在linux下进行吗


windows7
也是可以了,因为android用的开发语言是java,java是跨平台的语言,在任何系统都可以进行工作不用改代码,只要安装对用的
java虚拟机
就可以了

‘贰’ android软件开发 怎么读懂一个android源代码

一开始都会感觉到疑惑,网络上,论坛上,甚至是书本上都讲不清楚,不知道这是什么原因,我想人类的私心在里面会占据很大的因素。
不是每个人都愿意分享自己辛苦得来的经验和心得。
android软件,你可以这么看,它是用java语言+很多很多的现成的已经被别人写到的包组合成的。

其实它的本质就是java,然后那些界面什么,其实核心就是一个叫做XML的东西。
这个XML其实也没什么神秘,就是一个国际化的,标准的标签。
然后标签其实说白了就是记号,你在这个XML文件里面,按照谷歌给你定好的游戏规则,写标签,然后这个标签会被自动解析成相应功能。
整个android界面其实就是一个XML文件,android表面上的东西几乎都是XML文件组成的,剩下的核心程序逻辑,其实就是java程序。
再换句话说,你可以在java上把程序逻辑写好,然后单独写个XML文件,然后合并起来,就是android

‘叁’ Android 系统源代码多大

是指sdk的源码,还是android操作系统的源码,不过都有10G左右,另外sdk的源码是用git管理的,一次下载后,用git check就可以切换到各个版本。
Android SDK是用于开发Android上JAVA应用程序的,另外发布Android NDK,可以添加一些C语言写的链接库,至于Linux代码,可以在Android源代码中找到(SDK程序中只有编译好的测试映像)。应用程序开发用不到Linux代码(搞嵌入式开发才会用到,而SDK不负责底层开发)。

‘肆’ 做jni开发android系统源码怎么分析

Android中JNI是编译so库的源代码,编译成功后会生成SO库,android中最终是使用SO库的。
1.android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。
2.安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库
3.android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。

‘伍’ 如何使用android studio开发/调试android源码

Android源码的编辑和调试和Android Studio没什么关系,一个是系统源代码,一个是用于应用开发的集成工具。
Android Studio是利用SDK框架开发运行于Android系统的应用程序的一个代码编辑工具,编写的程序是运行在装有Android系统的设备或者Android虚拟机上运行的,这个家伙搞出来的都是应用,跟系统源码没什么关系。
Android源码是一个复杂的代码包,没有调试的概念,需要验证就是linux下make,这个需要搭建基于linux系统的编译环境,然后生成系统包,用烧录工具写到硬件设备上,开启设备用串口调试,这个完全是系统层上的东西,跟androidstudio那个编写应用的工具没一毛钱关系。源码编辑一般都是直接用vim看,也有用记事本类的东西。这里边搞的代码,也不只是java的,c++的,xml的,还有什么都不是的脚本什么的。

‘陆’ 怎样使用Eclipse来开发Android源码

使用Eclipse来开发Android源码步骤:

1、Eclipse必须按照ADT插件并下载对应的SDK库文件,按照插件后的Eclipse


4、点击下一步,即可完成使用Eclipse来开发Android源码

‘柒’ 如何使用Android Studio开发/调试Android源码

一、修改Android
Studio(以下简称AS)的内存配置
因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文档中使用的是748m,
可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一个没有classpath的JDK,
这样可以确保使用源码里的库文件
三、生成导入AS所需配置文件(*.ipr)
①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)
②检查out/host/linux-x86/framework/目录下是否有idegen.jar
如果idegen.jar不存在,执行:
mmm
development/tools/idegen/
在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。
我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。
③执行
development/tools/idegen/idegen.sh
等待出现类似下面的结果:
Read
excludes:
5ms
Traversed
tree:
44078ms
这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ
IDEA(AS是基于IntelliJ
IDEA社区版开发的)的配置文件
④在AS中打开源码根目录下新生成的android.ipr
四、解决源码中跳转错误问题
①为当前工程设置正确的SDK和JDK
②设置'Moles'的依赖
先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.
如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)
点击上图中'2'指向的'+'并选择上图'3'指向的'Jars
or
directories'选项,依次将frameworks和external文件夹添加进来
五、DEBUG源码
可以通过给刚导入的工程在'Moles'中添加'Android
Framework'来让AS将它作为一个Android工程,从而方便调试代码.
在弹出的选择进程(Choose
Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.
六、其它
代码中很多地方提示Call
requires
API
Level
x....
出现这个问题是因为AS将工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.
只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。
也可以考虑使用build.gradle来解决该问题。

‘捌’ github 上有什么价值的android 源码

1. ActionBarSherlock

ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。

对于Android
4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBar实现,而对于之前没有ActionBar功能的版本,基于
Ice Cream Sandwich的自定义动作栏实现将自动围绕布局。能够让开发者轻松开发一款带动作栏(Action
bar)的应用,并且适用于Android 2.x及其以上所有版本。

详情请参考:ActionBarSherlock

2. facebook-android-sdk

Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Android应用中。

如果想要获取更多关于示例、文档、将SDK集成到App中、源代码等信息,可直接登陆Facebook Developers查看。

3. SlidingMenu(SlidingMenu Demos)

SlidingMenu是一个开源的Android库,能够让开发者轻松开发一款应用,实现类似于Google+、Youtube和Facebook应用中非常流行的滑动式菜单。

使用SlidingMenu的Android应用:

Foursquare
Rdio
Plume
VLC for Android
ESPN ScoreCenter
MLS MatchDay
9GAG
Wunderlist 2
The Verge
MTG Familiar
Mantano Reader
Falcon Pro (BETA)
MW3 Barracks

4. cocos2d-x

在移动开发领域,将Cocos2D-X用于主流iOS/Android游戏开发的公司、开发团队多不胜数。cocos2d-x是一个开源的支持多平
台的2D游戏框架,使用C++开发,基于cocos2d-iphone,在MIT许可证下发布。主分支在GitHub上使用OpenGL ES
2.0渲染,而旧版gles11分支则使用OpenGL ES 1.1渲染。

支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程语言。

5. android

GitHub Android App是
GitHub开源的Android客户端,支持Issues、Gists,并集成了新闻Feed,能够让你及时跟进组织及关注的开发者、库等。同时,该应
用还提供了一个用户快速访问你所创建、监控及发布issue的面板,可查看并将问题加入到收藏夹,可对标签、里程碑和任务进行过滤配置。

android资源库包含了GitHub Android App的所有源代码。

6. Android-ViewPagerIndicator

ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面。

兼容Android支持库的ViewPager及ActionBarSherlock,最初是基于Patrik Åkerfeldt的ViewFlow,开发者可以直接登陆Google Play下载该项目的演示应用。

7. MonoGame

MonoGame是一个Microsoft XNA 4.x Framework的开源跨平台实现。用于让XNA开发者将他们在Xbox
360、Windows & Windows Phone上开发的游戏移植到iOS、Android、Mac OS
X、Linux及Windows 8 Metro上,目前,PlayStation Mobile & Raspberry
PI的开发正在进行中。

详情请参考:MonoGame

8. Android-PullToRefresh

该项目用于为Android提供一个可重用的下拉刷新部件。它最初来源于Johan Nilsson的库(主要是图形、字符串和动画),但这些后来都已被取代。

9. android-async-http

android-async-http是Android上的一个异步、基于回调的HTTP客户端开发包,建立在Apache的HttpClient库上。

10. Android-Universal-Image-Loader

Android上最让人头疼的莫过于从网络获取图片、显示、回收,任何一个环节有问题都可能直接OOM,这个项目或许能帮到你。

Universal Image Loader for Android的目的是为了实现异步的网络图片加载、缓存及显示,支持多线程异步加载。它最初来源于Fedor Vlasov的项目,且自此之后,经过大规模的重构和改进。

11. GreenDroid

GreenDroid最初是由Cyril Mottier发起,是一个Android的UI开发类库,能够让UI开发更加简便,并且在应用中始终保持一致。

详情请参考:Cyril Mottier's Blog

12. Anki-Android

AnkiDroid是一个免费、开源的Android的闪存应用,可直接从Google Play进行下载。

详情请参考:ankidroid

13. android-actionbar

Action
bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当开发者需要突出展现用户行为或在全局导航的
activity中使用action bar,因为action
bar能够使应用程序给用户提供一致的界面,且系统能够很好地根据不同的屏幕配置来适应操作栏的外观。

Action bar的主要目的:

提供一个用于识别应用程序的标示和用户的位置的专用空间。
在不同的应用程序之间提供一致的导航和视觉体验。
突出Activity的关键操作,并且在可预见的方法内给用户提供快捷的访问。

14. android-viewflow

android-viewflow是Android平台上的一个视图切换的效果库,ViewFlow相当于Android UI部件提供水平滚动的ViewGroup,使用Adapter进行条目绑定。

15. android-mapviewballoons

当使用Android地图外部库(com.google.android.maps)时,android-mapviewballoons会提供一个简单的方式来对地图覆盖进行标注,就是一个简单的信息气泡。

它由BalloonOverlayView组成,是一个代表显示你的MapView及BalloonItemizedOverlay的气泡的视图,BalloonItemizedOverlay是ItemizedOverlay的一个抽象扩展。

16. PushSharp

一个向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone和Windows 8设备发送推送通知的服务器端库。

17. androidannotations

Android Annotations是一个开源的框架,用于加速 Android应用的开发,可以让你把重点放在功能的实现上,简化了代码,提升了可维护性。

18. HockeyKit

Hockey是一个iOS Ad-Hoc自动更新框架。苹果App
Store中的所有App都可以使用它,它能够显着地提高Beta测试的整个过程,分为两部分:服务器和客户端框架。服务器组件需要所有脚本,但在没有客
户端库的情况下,也可以单独工作。它提供一个Web接口,Beta测试者可以使用它来安装最新的AdHoc配置文件,也可以直接在设备上通过Safari
安装最新的Beta版本。

只需在服务器上安装一次服务端,就可以处理包标识符不同的多个应用程序(有开发者强烈建议对Debug、AdHoc Beta和AppStore发布版使用不同的包标识符)。
默认当App启动或唤醒时,客户端会从服务器检测更新,用户可以在设置对话框中进行修改:一天一次或手动检查更新。
除了支持iOS,HokeyKit也支持Android平台,不过Android版还处在Alpha阶段,支持OTA及应用内更新。
为HockeyKit用户提供服务器托管服务。

19. android-menudrawer

Android上的菜单展示风格各异,其中用得最多且体验最好的莫过于左右滑动来显示隐藏的菜单,android-menudrawer是一个滑动
式菜单实现,允许用户在应用当中实现无缝导航。该项目具有多种菜单展示效果,其中最常见的就是通过屏幕边缘拖动或点击动作栏的“向上”按钮显示。

实现功能:

菜单可以沿着四个边放置。
支持附加一个始终可见、不可拖动的菜单。
菜单的内容和整个窗口都可以隐藏。
可用于XML布局。
显示当前可见屏幕的指示器。

20. android-flip

Aphid FlipView是一个能够实现Flipboard翻页效果的UI组件。

‘玖’ 如何使用Eclipse开发Android源码

用eclipse+ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么,我们可以用eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许多类库(包)找不到。
今天找到关于怎样使用eclipse来开发android源码的官方文档:
https://sites.google.com/a/android.com/opensource/using-eclipse7e7V/[:]!l*P+n0`
从该文档和实践可以总结出几点:0J*f"t:q/i&c
1、可以使用eclipse来编辑JAVA程序、检查错误(主要是类库包含和语法方面),但是不能在eclipse上编译运行android源码,还是得在shell中make(或mm或mmm)
2、android源码文件夹里提供有一些eclipse配置文件,.n;`4E)z5B8G6V,z1x2a
.claapath:eclipse工程的配置文件,方便我们直接把android源码相应的文件和JAVA包导入工程#?%B9J,m!t%n0t*B9P'?;{
android-formatting.xml和android.importorder:这个很重要,主要是用来规范我们的编码风格,更容易使我们的代码风格一致
3、把android源码作为一个工程导入eclipse时,必须注意两点
1)、新建的工程必须是javaproject,不能是androidproject,否则会破坏android源码(一般是多添加文件/文件夹)
2)、导入前最好检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹)
总的来说:!P"A+~']%p9I5U7V;S;B
1、用eclipse来编辑代码、检查错误
2、不在eclipse上编译、运行android源码程序,只能在命令行通过make(或mm或mmm)编译android源码
3、可以在eclipse上调试android源码程序(原理:eclipse通过ddms服务器在emulator上进行调试),并可以单步调试、断点调试。
下面,从官方文档总结出具体怎样用eclipse来开发android源码
1、建立基本的android开发环境3{#?0q:D&k#k)$R
请参考官方文档或
2、编译android源码
android源码根目录下通过make进行编译,请注意一些配置,具体可参考
3、把eclipse工程配置文件复制到android源码根目录下
cpdevelopment/ide/eclipse/.classpath./
chmo+w.classpath#Makethewritable
4、修改eclipse程序的配置
1)、修改eclipse缓存设置
把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:
-Xms128m/i2t!A4p!Z%V/q#o"J
-Xmx512m;Jz8E.@'z'D'D3W
-XX:MaxPermSize=256m
2)、把android-formatting.xml和android.importorder导入eclipse
android-formatting.xml、.classpath和android.importorder都放在development/ide/eclipse/下
android-formatting.xml用来配置eclipse编辑器的代码风格;android.importorder用来配置eclipse的import的顺序和结构。(S8q$p'T*x"/H7a
在window->preferences->java->Codestyle->Formatter中导入android-formatting.xml+X"y*b!N$m
在window->preferences->java->Codestyle->OrganizeImports中导入android.importorder#Fd5X"H.X
3)、安装anyedit插件(可选)#G9C;h/Z&q5D!s8z7y9_
在http://andrei.gmxhome.de/anyedit/下载并导入eclipse中+J.X#@5?3r3U
5、把android源码作为一个工程导入eclipse
导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除-]!U4n$@:~9b+A1|-z
新建JavaProject(不是androidproject,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。
导入时,eclipse要build工程,比较慢。导完后,一般都没有错误。"B(Ui%w#w*y4]
6、eclipse上调试android里的程序。
先执行:$K+H,r.},v._U5q'x&~,I
cdandroid源码目录
.build/envsetup.sh
lunch1#tobuildtheemulator
emulator&#$q-{/n6z+{.k0O&I0-p
ddms&#
然后在eclipse中配置调试类型和端口:5z8t(q*A+o-g7L#_
在Run->DebugConfigurations->Remotejavaapplication上双击,然后,”Host:”设为localhost,”Port:”设为8700,”ConnectionType”为Standard(SocketAttach)
然后“Apply”-Q7I(8v4BA9R/Q&u
注意,在点击”Debug”时苦出错,说8700端口被占用,那么把DDMS程序关掉,重新打开DDMS就OK了。如果提供连不到VM错误时,请注意,要先在DDMS中选中某一进程(对应某一应用程序),才能在eclipse执行Debug。.B%*E!T,K7N8Ub
在eclipse调试时,可以设断点、单步调试。估计google团队也是这样开发、调试android应用程序的&X:n6t"|%B4E
7、编译android源码2?:`9i0O1U;E*|+Z']/r
执行:
cdandroid源码目录0v1Z;p1P0|$V6x5A.@$S2o7p
.build/envsetup.sh$R!h!^-l/l:i5P
那么就会多出mm/mmm等命令,mm/mmm用来编译模块(包括C、C++、JAVA程序)。我们也可以直接在android源码根目录下执行“make模块名”来编译模块。

来自开源中国网老枪的分享

‘拾’ 怎么使用Eclipse来开发Android源码

项目中要在Android移动终端开发代理软件Agent,涉及到的API还没被加到SDK中,所以要在源代码中开发,用eclipse+ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么,我们可以用eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许多类库(包)找不到,参考http://groups.google.com/group/android-platform/browse_thread/thread/0c344453303d338f/635a9f6d0f0fce89?hide_quotes=no
今天找到关于怎样使用eclipse来开发android源码的官方文档:

https://sites.google.com/a/android.com/opensource/using-eclipse

从该文档和实践可以总结出几点:

1、可以使用eclipse来编辑JAVA程序、检查错误(主要是类库包含和语法方面),但是不能在eclipse上编译运行android源码,还是得在shell中make(或mm或mmm)

2、android源码文件夹里提供有一些eclipse配置文件,

.claapath:eclipse工程的配置文件,方便我们直接把android源码相应的文件和JAVA包导入工程

android-formatting.xml和android.importorder:这个很重要,主要是用来规范我们的编码风格,更容易使我们的代码风格一致

3、把android源码作为一个工程导入eclipse时,必须注意两点

1)、新建的工程必须是javaproject,不能是androidproject,否则会破坏android源码(一般是多添加文件/文件夹)

2)、导入前最好检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹)

总的来说:

1、用eclipse来编辑代码、检查错误

2、不在eclipse上编译、运行android源码程序,只能在命令行通过make(或mm或mmm)编译android源码

3、可以在eclipse上调试android源码程序(原理:eclipse通过ddms服务器在emulator上进行调试),并可以单步调试、断点调试。

下面,从官方文档总结出具体怎样用eclipse来开发android源码

1、建立基本的android开发环境

请参考官方文档或<android模拟器在ubuntu8.10的安装>

2、编译android源码

android源码根目录下通过make进行编译,请注意一些配置,具体可参考<android源码的编译>

3、把eclipse工程配置文件复制到android源码根目录下

cp development/ide/eclipse/.classpath ./

chmod u+w .classpath # Make the writable

4、修改eclipse程序的配置

1)、修改eclipse缓存设置

把eclipse.ini(在eclipse软件的安装目录下)的3个值改为下面的值:

-Xms128m

-Xmx512m

-XX:MaxPermSize=256m

2)、把android-formatting.xml和android.importorder导入eclipse

android-formatting.xml、.classpath和android.importorder都放在development/ide/eclipse/下

android-formatting.xml用来配置eclipse编辑器的代码风格;android.importorder用来配置eclipse的import的顺序和结构。

在window->preferences->java->Codestyle->Formatter中导入android-formatting.xml

在window->preferences->java->Codestyle->OrganizeImports中导入android.importorder

3)、安装anyedit插件(可选)

在http://andrei.gmxhome.de/anyedit/下载并导入eclipse中

5、把android源码作为一个工程导入eclipse

导入前先检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹),.classpath里多余的路径可删除

新建JavaProject(不是androidproject,否则会破坏android源码),选择从已存在的工程导入,工程名任意,完成。

导入时,eclipse要build工程,比较慢。导完后,一般都没有错误。

6、eclipse上调试android里的程序。

先执行:

cd android源码目录

. build/envsetup.sh

lunch 1 # to build the emulator

emulator & # you should see a GUI picture of a phone

ddms & # you should get a splufty debugging console

然后在eclipse中配置调试类型和端口:

在Run->Debug Configurations->Remotejavaapplication上双击,然后,”Host:”设为 localhost,”Port:”设为8700,”ConnectionType”为Standard(SocketAttach)

然后“Apply”

注意,在点击”Debug”时苦出错,说8700端口被占用,那么把DDMS程序关掉,重新打开DDMS就OK了。如果提供连不到VM错误时,请注意,要先在DDMS中选中某一进程(对应某一应用程序),才能在eclipse执行Debug。

在eclipse调试时,可以设断点、单步调试。估计google团队也是这样开发、调试android应用程序的

7、编译android源码

执行:

cd android源码目录

. build/envsetup.sh

那么就会多出mm/mmm等命令,mm/mmm用来编译模块(包括C、C++、JAVA程序)。我们也可以直接在android源码根目录下执行“make模块名”来编译模块。

分类: Android-app, Android-SourceCode

热点内容
sqlserver无法启动 发布:2024-05-04 01:37:19 浏览:847
php使用正则 发布:2024-05-04 01:36:12 浏览:118
玉石密度算法 发布:2024-05-04 01:24:49 浏览:334
我的世界云服务器怎么样 发布:2024-05-04 01:20:01 浏览:21
androidsdk包含 发布:2024-05-04 00:45:54 浏览:209
android拷贝文件 发布:2024-05-04 00:38:28 浏览:777
存储冗余比 发布:2024-05-04 00:12:58 浏览:404
oracle数据库存储原理 发布:2024-05-04 00:10:40 浏览:524
未拆封玩客云3怎么搭建服务器 发布:2024-05-04 00:06:11 浏览:797
彻底删除编译安装的文件 发布:2024-05-04 00:05:33 浏览:55