怎么用git整合android studio git工厂

Git/Github的使用并与Eclipse整合
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
& & & Git是一个免费的、分布式的版本控制工具,或是一个强调了速度快的源代码管理工具。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。
& & & &Git 在管理项目时,在本地会有三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。如下图所示:
因此对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。
安装及配置Git
终端运行:
sudo apt-get install git git-core 首先去/ 注册一个账户,当然是free and opensource的用户了。
根目录下创建git目录。
mkdir ~/git
&初始化两个参数:
git config --global user.name = "username"
git config --global user.email = "***@*****"
因为本机是通过ssh链接github的,所以先创建ssh密钥。
看一下本机是否已经有ssh的密钥。
提示没有文件或者目录的话说明本机还没有创建过,继续执行
ssh-keygen -t rsa -C "your_"
一路Enter,在根目录下面就会生产.ssh文件夹(隐藏,查看隐藏文件夹的话按Ctrl+H),里面有生产的密钥文件。
用gedit打开~/.ssh/github.pub,将文件内容拷贝到剪切板,(最好用gedit,其他的工具可能出现换行空格)
回到github的页面,点击Acount setting,
点SSH Keys,
title随便取,key里面把之前复制的公钥的内容粘进去
终端测试一下:
成功连接的结果就想这样:
Agent admitted failure to sign using the key.
Permission denied (publickey).
ssh-add再进行连接就没问题了。
最简单的一种使用方式就是从github上下载别人的开源项目。
打开一个开源工程的页面
直接点击左上角的zip包就可以下载工程了。
更方便一些的做法是在终端运行命令来下载源码。
终端运行:
git clone /SimonVT/android-menudrawer.git
会自动下载整个工程到当前的目录。
接下来要实现的是分享自己的项目到github上,并进行版本控制。
首先在github上面创建工程。
在个人主页上点击Responsitories选项卡的New
填写一些信息,点Create respository
github上的项目就创建好了。
接下来从服务器下载工程及配置文件到本地。
终端运行:
mkdir ~/git/repos
cd ~/git/repos
git clone :***/***.git
执行完毕后,repos文件夹下就拷贝好了github上的项目。
本地进行项目编辑,比如添加一个文件之后,
可以通过下面的命令来更新项目了。
git add . //往暂存区域添加已添加和修改的文件,不处理删除的文件
git status //比较本地数据目录与暂存区域的变化
git commit -m "commit directions" //提到代码到本地数据目录,并添加提交说明
有可能你和其他人改的是同一个文件,那么冲突的情况是在所难免的,那么在提交之后再获取一下代码,就会提示代码冲突的文件,我们需要做的就是处理这些冲突,并再次提交:
//更新代码
根据提示修改冲突文件中的代码
git commit -m "commit directions"
当做完以上的步骤的时候,你需要做的是把本地数据目录的版本库的数据同步到GitHub服务器上去
提交完成之后刷新github的页面,发现文件已经跟新好了。
在Eclipse中整合git
首先安装git插件,在Eclispe中,
Help-&Install New Software.
http://download.eclipse.org/egit/updates
接着一路下一步,插件就安装好了。
在Eclipse中创建一个工程。
然后在工程上右击-&Team-&Share project-&git-&next.
选择Use or create repository in parent folder of project,如下图,点finish。
执行完成之后项目文件夹下就会创建好一个.git的文件夹,仓库就创建好了。
由于项目中的有一些文件没有必要上传,比如bin文件夹,需要在项目中设置好。
展开对应的项目,有小箭头的表示需要上传到服务器的目录,在不想要上传的目录上右击,Team-&Ignoe,该目录就会被忽略了。
下面来commit代码到本机一下。
项目上右击Team-&commit。
选中要commit的文件,点commit,完成之后,代码就上传到本地的服务器了。
接下来把代码上传到github的服务器。
命令行中进入到项目的文件夹,运行
git remote add origin /SilangQuan/LinearCompiler.git
git push -f
成功执行后就像这样:
查看github的项目主页,发现文件已经上传好。
之后在Eclipse中修改好项目代码之后,commit之后直接在项目上右击Team-&push就可以进行代码提交。
上传到github上之后,团队中另外的成员可以通过Eclipse-&File-&Import-&Project from Git-&URI来提取工程。
在团队开发中,通常在新的一天的开始工作之前,把最新的代码fecth下来。
直接在项目想右击-&Team-&fetch
再执行-&Team-&Merge.
服务器上的新文件就会添加进来了。
git/github初级运用自如 -&/fnng/archive//2315685.html
Git 参考手册 -&http://gitref.cyj.me/zh/index.html
EGit/User Guide -&http://wiki.eclipse.org/EGit/User_Guide
来自:http://blog.csdn.net/qp/article/details/8964007
相关资讯  — 
相关文档  — 
发布时间: 10:54:30
同类热门经验
66815次浏览
69184次浏览
48951次浏览
30206次浏览
29000次浏览
16088次浏览
OPEN-OPEN, all rights reserved.1076人阅读
& 来源:http://blog.csdn.net/droidpioneer/article/details/6612026
Android官方网站对源代码的下载有详细的介绍,大家可以按照网站上介绍的方法一步步操作就可以了。
本文向大家介绍的是如何只对个别目录进行下载的方法,因为一方面由于网速的原因,很多时候完整下载所有的代码是办不到的,另一方面,我们可能只关心个别目录的源代码而已。
需要指出的是,Andrid的的源代码需要在Linux环境下下载的,在Windows环境下下载源代码的话大家可以安装Cygwin工具(PS:用Cygwin还可以在Windows下开发Android NDK 应用),配置好后下载方法是一样的。
好了,单个目录源码下载的具体步骤是:
第一步,按照官方网站的方法配置好git 和repo及相关的环境变量。
第二步,用 git clone方法对感兴趣的目录分别下载。
对于第二步,我们可以参考下面的例子。
源代码所在的地址是:
如果我们要对所有的Android源代码进行下载,下载命令是:
repo init -u git://android.git.kernel.org/platform/manifest.git
repo sync
当然,如果我们只想下载Android 2.3 gingerbread版的完整源代码,加上分支选项:
repo init -u git://android.git.kernel.org/platform/manifest.git –b gingerbread
repo sync
好了,如果只想下载单个目录的代码,参见下面的例子:
仅下载Launcher:
git clone git://android.git.kernel.org/platform/packages/apps/Launcher2.git
仅下载 Android 2.2 froyo版的Launcher:
git clone git://android.git.kernel.org/platform/packages/apps/Launcher2.git –b froyo
分别下载Android 2.2 froyo版的framework的各个目录:
git clone git://android.git.kernel.org/platform/frameworks/base.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/base.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/policies/base.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/ex.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/opt/com.google.android.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/opt/com.google.android.googlelogin.git -b froyo
git clone http://android.git.kernel.org/platform/frameworks/opt/emoji.git -b froyo
其他的例子就类推了,如果不清楚究竟哪些目录有git下载节点,可以直接通过浏览器访问网站了解Android源代码的分支结构:
1. git clone /kernel/common.git
&& 2. git clone /kernel/experimental.git
&& 3. git clone /kernel/msm.git
&& 4. git clone /kernel/omap.git
&& 5. git clone /platform/bionic.git
&& 6. git clone /platform/bootable/bootloader/legacy.git
&& 7. git clone /platform/bootable/diskinstaller.git
&& 8. git clone /platform/bootable/recovery.git
&& 9. git clone /platform/bootloader/legacy.git
& 10. git clone /platform/build.git
& 11. git clone /platform/dalvik.git
& 12. git clone /platform/development.git
& 13. git clone /platform/external/aes.git
& 14. git clone /platform/external/alsa-lib.git
& 15. git clone /platform/external/alsa-utils.git
& 16. git clone /platform/external/apache-http.git
& 17. git clone /platform/external/astl.git
& 18. git clone /platform/external/bison.git
& 19. git clone /platform/external/bluez.git
& 20. git clone /platform/external/bsdiff.git
& 21. git clone /platform/external/bzip2.git
& 22. git clone /platform/external/clearsilver.git
& 23. git clone /platform/external/dbus.git
& 24. git clone /platform/external/dhcpcd.git
& 25. git clone /platform/external/dosfstools.git
& 26. git clone /platform/external/dropbear.git
& 27. git clone /platform/external/e2fsprogs.git
& 28. git clone /platform/external/eglib.git
& 29. git clone /platform/external/elfcopy.git
& 30. git clone /platform/external/elfutils.git
& 31. git clone /platform/external/embunit.git
& 32. git clone /platform/external/emma.git
& 33. git clone /platform/external/esd.git
& 34. git clone /platform/external/expat.git
& 35. git clone /platform/external/fdlibm.git
& 36. git clone /platform/external/freetype.git
& 37. git clone /platform/external/fsck_msdos.git
& 38. git clone /platform/external/gdata.git
& 39. git clone /platform/external/genext2fs.git
& 40. git clone /platform/external/giflib.git
& 41. git clone /platform/external/googleclient.git
& 42. git clone /platform/external/grub.git
& 43. git clone /platform/external/gtest.git
& 44. git clone /platform/external/hcidump.git
& 45. git clone /platform/external/icu4c.git
& 46. git clone /platform/external/iptables.git
& 47. git clone /platform/external/jdiff.git
& 48. git clone /platform/external/jhead.git
& 49. git clone /platform/external/jpeg.git
& 50. git clone /platform/external/junit.git
& 51. git clone /platform/external/lcc.git
& 52. git clone /platform/external/libffi.git
& 53. git clone /platform/external/libpcap.git
& 54. git clone /platform/external/libpng.git
& 55. git clone /platform/external/libxml2.git
& 56. git clone /platform/external/mtpd.git
& 57. git clone /platform/external/netcat.git
& 58. git clone /platform/external/netperf.git
& 59. git clone /platform/external/neven.git
& 60. git clone /platform/external/opencore.git
& 61. git clone /platform/external/openssl.git
& 62. git clone /platform/external/oprofile.git
& 63. git clone /platform/external/ping.git
& 64. git clone /platform/external/ppp.git
& 65. git clone /platform/external/protobuf.git
& 66. git clone /platform/external/qemu.git
& 67. git clone /platform/external/safe-iop.git
& 68. git clone /platform/external/skia.git
& 69. git clone /platform/external/sonivox.git
& 70. git clone /platform/external/sqlite.git
& 71. git clone /platform/external/srec.git
& 72. git clone /platform/external/strace.git
& 73. git clone /platform/external/tagsoup.git
& 74. git clone /platform/external/tcpdump.git
& 75. git clone /platform/external/tesseract.git
& 76. git clone /platform/external/tinyxml.git
& 77. git clone /platform/external/tremor.git
& 78. git clone /platform/external/webkit.git
& 79. git clone /platform/external/wpa_supplicant.git
& 80. git clone /platform/external/xdelta3.git
& 81. git clone /platform/external/yaffs2.git
& 82. git clone /platform/external/zlib.git
& 83. git clone /platform/frameworks/base.git
& 84. git clone /platform/frameworks/opt/com.google.android.git
& 85. git clone /platform/frameworks/opt/com.google.android.googlelogin.git
& 86. git clone /platform/frameworks/opt/emoji.git
& 87. git clone /platform/frameworks/policies/base.git
& 88. git clone /platform/hardware/alsa_sound.git
& 89. git clone /platform/hardware/libhardware.git
& 90. git clone /platform/hardware/libhardware_legacy.git
& 91. git clone /platform/hardware/msm7k.git
& 92. git clone /platform/hardware/ril.git
& 93. git clone /platform/manifest.git
& 94. git clone /platform/packages/apps/AlarmClock.git
& 95. git clone /platform/packages/apps/Browser.git
& 96. git clone /platform/packages/apps/Calculator.git
& 97. git clone /platform/packages/apps/Calendar.git
& 98. git clone /platform/packages/apps/Camera.git
& 99. git clone /platform/packages/apps/Contacts.git
&100. git clone /platform/packages/apps/Email.git
&101. git clone /platform/packages/apps/GoogleSearch.git
&102. git clone /platform/packages/apps/HTMLViewer.git
&103. git clone /platform/packages/apps/IM.git
&104. git clone /platform/packages/apps/Launcher.git
&105. git clone /platform/packages/apps/Mms.git
&106. git clone /platform/packages/apps/Music.git
&107. git clone /platform/packages/apps/OTAProvisioningClient.git
&108. git clone /platform/packages/apps/PackageInstaller.git
&109. git clone /platform/packages/apps/Phone.git
&110. git clone /platform/packages/apps/Settings.git
&111. git clone /platform/packages/apps/SoundRecorder.git
&112. git clone /platform/packages/apps/Stk.git
&113. git clone /platform/packages/apps/Sync.git
&114. git clone /platform/packages/apps/Updater.git
&115. git clone /platform/packages/apps/VoiceDialer.git
&116. git clone /platform/packages/inputmethods/LatinIME.git
&117. git clone /platform/packages/inputmethods/OpenWnn.git
&118. git clone /platform/packages/inputmethods/PinyinIME.git
&119. git clone /platform/packages/providers/ApplicationsProvider.git
&120. git clone /platform/packages/providers/CalendarProvider.git
&121. git clone /platform/packages/providers/ContactsProvider.git
&122. git clone /platform/packages/providers/DownloadProvider.git
&123. git clone /platform/packages/providers/DrmProvider.git
&124. git clone /platform/packages/providers/GoogleContactsProvider.git
&125. git clone /platform/packages/providers/GoogleSubscribedFeedsProvider.git
&126. git clone /platform/packages/providers/ImProvider.git
&127. git clone /platform/packages/providers/MediaProvider.git
&128. git clone /platform/packages/providers/TelephonyProvider.git
&129. git clone /platform/packages/providers/UserDictionaryProvider.git
&130. git clone /platform/prebuilt.git
&131. git clone /platform/recovery.git
&132. git clone /platform/system/bluetooth.git
&133. git clone /platform/system/core.git
&134. git clone /platform/system/extras.git
&135. git clone /platform/system/wlan/broadcom.git
&136. git clone /platform/system/wlan/ti.git
&137. git clone /platform/vendor/asus/eee_701.git
&138. git clone /platform/vendor/csr/unifi-105x.git
&139. git clone /platform/vendor/csr/unifi-60xx.git
&140. git clone /platform/vendor/htc/dream-open.git
&141. git clone /platform/vendor/qcom/surf.git
&142. git clone /tools/android-issuetrackerredirect.git
&143. git clone /tools/executablewar.git
&144. git clone /tools/gerrit-contactstore.git
&145. git clone /tools/gerrit-keyapplet.git
&146. git clone /tools/gerrit.git
&147. git clone /tools/gimd.git
&148. git clone /tools/gwtexpui.git
&149. git clone /tools/gwtjsonrpc.git
&150. git clone /tools/gwtorm.git
&151. git clone /tools/manifest.git
&152. git clone /tools/protobuf.git
&153. git clone /tools/repo.git
&154. git clone /tools/test/manifest.git
&155. git clone /tools/test/project0.git
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:115076次
积分:1684
积分:1684
排名:第10753名
原创:49篇
转载:24篇
评论:32条
(1)(2)(1)(1)(6)(2)(1)(5)(1)(7)(4)(2)(7)(5)(3)(10)(3)(1)(1)(1)(1)(1)(5)(2)浅谈Android软硬件巧妙整合的开发技巧
每天15篇文章
不仅获得谋生技能
更可以追随信仰
浅谈Android软硬件巧妙整合的开发技巧
Android一词的本义指“机器人”,同时也是Google于日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android
2.4 Gingerbread和Android 3.0 Honeycomb。
Android是基于Linux内核的操作系统,是Google公司在日公布的手机操作系统。早期由原名为“Android”的公司开发,谷歌在2005年收购“Android.Inc”后,继续进行对Android系统开发运营,它采用了软件堆层(software
stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,另外还有中国大陆厂商如:华为、中兴、联想等。
Android以Java为编程语言,从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个
Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的
Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View
类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的
Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android
Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract
class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity
中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View
与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event
listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。
随着科技的快速演进,现代人对移动通信、无线上网与多媒体娱乐的需求更甚以往,所谓的智能手机(Smart
Phone)便成了炙手可热的个人消费电子产品之一,从Apple不断推出iPhone企图颠覆消费者对手机的想象、RIM推出主打商务功能的黑莓机、Google的Android系统让众家手机厂商争食大饼,到微软屡败屡战的从WinMo一路开发到WP7,智能手机的这块战场可说是打的如火如荼。然而在这些众家竞争者中,Android可说是目前行情看俏的一套操作系统,以国际市调研究机构Gartner最新出炉2010年第三季的调查为例,采用Android操作系统的智能手机在过去一年以来成长幅度最高,光是市占率便是前一年同期的七倍之多,销售量更是达到14倍的成长,同时也一举从市占率排名的第六名窜升到第二名。
*Gartner 2010 Q3 Worldwide Smartphone
Android在过去一直扮演后起之秀的角色,切入智能手机的速度似乎慢了苹果的iOS一步,但与Apple相同的是,它也成功的将其应用从手机移植到了平板电脑(Tablet
PC)上。Android开放源代码(Open Source)的特性,能轻易地提高厂商对自家产品的接受度,更不用提背后Google的强力撑腰能带来多大的经济效益。目前可见包括手机厂商HTC、摩托罗拉(Motorola)、三星(SAMSUNG),以及电脑大厂惠普(HP)与戴尔(Dell)等皆投向Android的怀抱,Android被广泛应用可说是势在必行。
尽管Android系统的普及看似指日可待,但在实际的产品应用上,也有其可能产生的问题风险。Android作为一个开放式的操作系统,是Google提供厂商的操作系统参考架构(reference
design),厂商能有充足的发挥空间,以Android为基础向上开发设计自家产品,但也因为这样的开放性与自由性,让厂商在软硬件结合的这个环节必须下更大的功夫,像是如何挑选合适的硬件包括基频处理器、通信芯片、触控感应芯片、天线与存储器模组等,以及如何调整出最适当的软件设定等,更重要的是如何将软硬件整合,开发出差异化的产品。这中间所有的细节都会对产品最终样貌产生莫大的影响,像是其功能的完整度、使用接口的设计、效能表现(例如触控滑动画面、开启程序所需时间)、品质可靠度、甚至是后续的固件升级动作等等。
一、解构Android基本技术架构
首先我们先来看到Android的基本技术架构,Android是以Linux为核心,并采用软件堆迭(software
stack)的架构延伸发展的一套软件平台与操作系统。根据下图可以看出,其基本架构分为五层:
*Android Structure by Google
Linux核心(Linux Kernel):以Linux开发提供最底层的核心系统服务,包括安全性(Security)、存储器管理(Memory
Management)、进程管理(Process Management)、网路堆迭(Network
Stack)与驱动程序模型(Driver Model)。
Android执行环境(Android Runtime):透过Core Libraries(核心函式库)以及暂存器型态的Dalvik
Virtual Machine(Dalvik虚拟机器)来执行程序。
系统函式库(Library):使用C/C++函式库的系统组件以供呼叫使用,开发者可透过上层的应用程序框架来运用这些功能,这也是主要Android设备的效能关键。
应用程序框架(Application Framework):被设计来简化组件的再运用,开发者能完整存取使用与核心应用程序(Core
Application)相同的API,应用程序可以发布功能并为其它应用程序所使用(需受限于其安全性限制),开发者也可运用同样的机制来新增与置换组件。
应用程序(Application):所有Android应用程序皆是以Java程序语言编写,原始就会包含像是Email、简讯、日历、地图、浏览器、联络人等其它应用程序,让用户一开始就拥有这些基本功能,开发者也可在此客制其使用接口。
厂商越想要设计出与原始设定不同且增强效能的产品,便越需要对这五层架构进行修改。譬如像是多任务处理能力(multi-tasking),便可能需要修改包括Linux核心与应用程序框架的设计;而应用程序的开发者更可能需要针对应用程序与框架进行调整。由此可见,对Android设备而言,任何一个功能的置入或是对硬件设定的细微更动,都需要对Android系统进行从下到上的调整以达到最优化的效能,而这正是最为困难与需要验证的一环。
二、Android设备软硬件整合的五大技术环节
如前所述,对众家开发厂商而言最大的挑战其实在于,如何将自己理想的产品诉求,与Android系统巧妙结合成一个功能完整并使用流畅顺手的产品,这其中牵涉了不同技术间的整合与运用。在此我们便根据其多年的测试与研究经验,归纳出五大Android相关设备在技术整合上的重要环节:
1、Linux驱动程序的导入
由于Android是根源于Linux所延伸出来的操作系统,因此各种关键功能的驱动程序也必须要能顺利的写入其中,举凡像是字符设备、存储器的空间配置、中断处理、网路通信、萤幕显示或是连接接口像是USB与PCI的驱动程序,这些可能是自行撰写、或是来自不同组件厂商的驱动程序,都必须要能被导入到Android系统,并维持良好稳定的效能表现。
2、系统单芯片的优化处理
对厂商而言,开发一款Android设备,不仅仅只是将所有零组件组合成为一个产品那么容易,最大的学问便在于将系统单芯片(System-on-a-chip,SoC)、各种新技术和Android系统进行整合,SoC涉及像是Dalvik
Virtual Machine、OpenGL、V8、Webkit Engine等上层的演算,与Android间的结合便必须透过不断的尝试与验证,才能研发出既符合成本效益、又有良好效能的优化产品。目前市面上有些SoC厂商已针对Android系统的特性,提供整合过的SoC平台,将蓝牙、相机或上网等常用功能模组预先写入,减少终端成品厂商费力整合开发的时间,但对厂商而言,这样的预先整合是否适合自身产品,以及是否需要再作更细致的修改,则又是更困难的课题。
3、新技术的移植
随着技术的快速发展,更多新兴的技术规格也逐渐应用在手机等手持设备上,以手机为例,已经从过去以拨打电话为主要功能,转变为拥有各种多样化用途的产品。像是触控技术让消费者可以透过手指的滑动传送指令甚至是具备多点触控的支持、Wi-Fi模组提供随时无线上网的可能、通用图形处理器(General-purpose
computing on graphics procESSing units,GPGPU)则能以并行方式透过图形处理器来执行通用计算任务、Android
2.3版所支持的NFC近场通信技术,以及更高阶的相机模组等等,背后都有各自的驱动程序与软件技术,也必须要与Android系统相结合使用。
4、效能表现的稳定
尽管上述这些技术不断推陈出新,但也都不能因此而牺牲设备原本的效能表现,让处理速度因此变慢或造成使用上不顺畅的状况。除了采用更好的硬件设备外(例如现今处理器的时脉已迈向1GHz),更需要操作系统的支持,像是如何在多任务运作的状况下维持程序执行速度以及系统满载的处理等等,都必须要透过软件面的奥援。也就是说,一台Android设备除了要能将各种功能与技术收纳起来、将软硬件整合外,更必须同时注重它在效能上能否维持应有的水准,以提供使用者在操作上流畅易上手的感受。
5、低电耗设计
Android的设计概念主要是应用于便携式设备上,目前市面上可见的像是平板电脑与智能手机等。对这类产品而言,电池续航力的好坏可说是影响消费者使用感受的关键之一,试想,若是一台智能手机的待机时间过短,而使用者在外时又无法随时充电使用,不能即时的连网查询资料或执行其他手机功能,这样的产品便失去了它作为便携式移动设备应有的便利性。追根究底,良好的待机时间除了需仰赖高容量的电池以提供充足电力之外,另一个重点就是设备本身在被使用执行时能否作到低电耗设计。Android设备让使用者能透过各种多样化的应用程序,来达到各种不同的使用目的,举凡像是单纯上网、观看新闻、邮件推播或是游戏等等,各种不同功能的程序都能透过自由下载使用,也由于其多任务处理与让程序背景执行的能力,更让降低耗电量成为开发者不可轻忽的一项课题。
持续验证修正 找出最佳Android整合方案
正如前面我们不断提到的,对Android设备而言,最困难的开发挑战便在于如何完美地“整合”软件与硬件,以开发出一项功能完整又同时注重使用者感受的产品。从对Android本身程序码的修改、相关硬件的选择,到驱动程序的结合运用以及能否维持稳定的效能表现等,在在都必须要透过仔细的研究与不断的尝试,才能找出问题的根源并解决、更进而找出最合适的整合方案。
像是Android源代码中对音源的重新取样(Re-sampling)设计,就会导致设备在读取48K音源时重新取样成44K,而造成谐波失真的现象影响音质,这便是厂商不会注意到而未去修改的问题;另外像是天线位置的设计,也可能直接的影响到收讯能力的好坏;而不良的电源管理设计,也极有可能影响到设备在持续使用状态中的耗电情形。百佳泰在此仅以专业测试验证实验室的角度,希冀以宏观的方式,针对Android设备的开发设计提供可用的参考,近期内我们也将会提供实际的相关测试数据报告,并进一步指陈这些可能的问题风险,以期让更多厂商与消费者都能注意到品质验证的重要性,是从产品设计的根源就要开始层层把关。
Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux
里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic
取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android
为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux
driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel
header files。Android 的 kernel header 是利用工具由 Linux kernel
header 所产生的,这样做是为了保留常数、数据结构与宏。   目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory
Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver
Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android
用来辅助Git工作的一个工具。
更多课程...&&&
希望我们的资料可以帮助你学习,也欢迎投稿&提建议给我
频道编辑:winner
邮&&&&&&&件:winner@
&&京ICP备号&&京公海网安备号

我要回帖

更多关于 android git 的文章

 

随机推荐