电话+V:159999-78052 ,欢迎咨询苹果电脑如何获取源代码,[python实用课程],[C++单片机原理],[C#网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]
要在苹果Mac电脑上允许任何来源的应用程序,你需要在“系统偏好设置”中的“安全性与隐私”里进行设置。
1.打开“系统偏好设置”:你可以通过点击屏幕左上角的苹果图标,然后从下拉菜单中选择“系统偏好设置”;或者,你也可以使用快捷键“Command+空格键”,然后输入“系统偏好设置”并选择它。
2.选择“安全性与隐私”:在“系统偏好设置”窗口中,你会看到一系列不同的选项。找到并点击“安全性与隐私”图标,它通常显示一个锁形状的图标。
3.解锁设置:在“安全性与隐私”窗口的左下角,你会看到一个锁图标。点击这个图标,然后输入你的电脑密码以解锁设置。这是为了确保只有授权用户才能更改这些设置。
4.选择“任何来源”:在“安全性与隐私”窗口的“通用”选项卡中,你会看到一个标题为“允许从以下位置下载的App”的部分。默认情况下,可能只选择了“AppStore”和“已识别的开发者”。要允许任何来源的应用程序,你需要点击右下角的锁图标并再次输入密码以进行更改。然后,在弹出的列表中选择“任何来源”。
1、在打开的网页上鼠标右键——查看源代码,不限于查看自己站代码,也可以查看别人的,不过只能看不能改。
2、自己的站就登陆ftp到自己站点,可以直接看到站点源文件。
用文本编辑软件打开就可以查看和编辑了。
其实早在2016年的时候,我就使用ubuntu编译过Android的源码,可是那个时候并没有深耕,所以一直也没有再进行过相关文章的发布。
时隔至今,当我想再深入framework的时候,我已经没有设备来安装Linux系统了,因为现在一直都是用Macos电脑来开发。
不过翻阅了AndroidDeveloper官网,发现现在Macos也能够编译Android源码了,这是惊喜万分啊!
那么如果你也有学习framework的想法,或者想单纯的编译一下源码,那么就继续读下去吧~~~
其实按照官网给的流程走一遍就能够成功了,不过由于我在走流程的过程中不是那么顺利,所以写下这篇文章,算为各位读者老爷趟一下。
从准备工作到编译一共分为9步:
第一步、创建区分大小写的磁盘映像
上图是官网的提示操作,当然不建议自己去磁盘工具那去搞,只需要直接在terminal中用下方的命令创建即可
hdiutilcreate-typeSPARSE-fs'Case-sensitiveJournaledHFS+'-size200g~/android.dmg这样,我们就创建了大小为200G的磁盘映像文件。该文件在装载后可用作具有Android开发所需格式的存储卷。为什么这么大呢?因为后期的源码和编译需要用到这么大的空间,所以最好是准备这么大了。
如果你的电脑存储不够大,那么也可以使用下方的命令对大小进行调整。
hdiutilresize-size<new-size-you-want>g~/android.dmg.sparseimage比如
hdiutilresize-size60g~/android.dmg.sparseimage这样就把刚才的映像文件调整为60G大小。
建立好之后,我们先不要急着挂载操作,我们先看后面的步骤。
第二步、安装JDK
我们都安装过JDK,所以本步骤略。
第三步、安装xcode
去官网安装对应的xcode版本即可,我电脑系统是10.14
安装的xcode11.3.1
同时也安装了11.3版本的xcode命令行工具。
第四步、安装MacPorts
通过macports.org安装MacPorts。
需要注意的是,我的电脑在进入安装过程的时候很慢,不知道是不是都这样,如果你的安装也很慢,那么就多等会儿吧,我大概等了5分钟
安装完后,修改~/.bash_profile配置文件
将
exportPATH=/opt/local/bin:$PATH添加到配置文件~/.bash_profile中。
第五步、通过MacPorts获取Make、Git和GPG程序包
使用下面命令即可
POSIXLY_CORRECT=1sudoportinstallgmakelibsdlgitgnupg同样,安装过程依旧很慢,主要和获取程序包的速度有关系,这一步我等了几十分钟...
不过耐心点,最后都是能装好的。
第六步、设置文件描述符数量上限
在Macos中,可同时打开的文件描述符的默认数量上限太低,在高度并行的编译流程中,可能会超出此上限。
要提高此上限,请将下列行添加到~/.bash_profile中:
ulimit-S-n1024这样我们就把「可同时打开的文件描述符的默认数量上限」调整为了1024个。
第七步、准备源代码
①安装Repo
首先确保主目录下有一个bin/目录,并且该目录包含在路径中
然后下载Repo工具,并确保它可执行:
curlhttps://storage.googleapis.com/git-repo-downloads/repo>~/bin/repochmoda+x~/bin/repo②初始化Repo客户端
创建一个空目录来存放工作文件。WORKING_DIRECTORY名字自己定义
mkdirWORKING_DIRECTORYcdWORKING_DIRECTORY然后,配置git信息
gitconfig--globaluser.name"YourName"gitconfig--globaluser.email"you@example.com"最后,初始化Repo
repoinit-uhttps://android.googlesource.com/platform/manifest如果报repo:commandnotfound的问题,那么只需执行下方命令即可
echo'exportPATH=$PATH:$HOME/bin'>>~/.bashrcexportPATH=$PATH:$HOME/bin很可惜,这一步不能顺利进行下去了...
这个时候我们只能通过「镜像」来解决了,这里我们用「清华镜像」,整个镜像大小为80G左右,所以一定要将电脑的剩余空间多腾一些...或者是外接移动硬盘。
继续下载,于是开始了漫长的等待...
功夫不负有心人,终于下载完了。
不过下一步,该看下你的电脑硬盘的剩余空间了,因为这个压缩版就有80G,那么解压之后就会超过100G,所以如果你的电脑剩余空间没有100G以上,那么建议把这个源码包放到移动硬盘里面,然后再从移动硬盘解压吧。
解压
解压完成后,我们会得到一个.repo的文件夹
然后,我们将源码进行同步
reposync同步时间很长,我这个电脑同步了差不多25分钟,这样我们的Android源码就准备好了,同步完成后的aosp结构如下
第八步、准备编译
①下载预览二进制文件
下载下来后,解压得到
②然后运行这个sh文件
sh文件名.sh需要看下协议
安装完成
③安装完成后,会在执行su命令的目录下创建一个vendor的文件夹
将此文件夹复制到源代码的根目录下,即aosp目录下。
④然后执行
make-fMakefileclobber以避免之前进行的build干扰到接下来的build。
第九步、开始编译
①先初始化环境
sourcebuild/envsetup.sh②然后使用lunch展示要编译的目标
这里我选择了24,所以后期可以直接执行lunch24即可,注意这里的选择跟你手上有什么型号的设备有关系,由于我手头上没有Google亲儿子的机器,所以这里就随便编译一个了。
现在我们直接进入下一步:编译阶段
使用make编译代码,如果想增加编译速度,可以借助-jN参数处理并行任务,比如我的电脑是双核4线程的,最快编译速度可以达到8个线程同时编译,所以可以使用
make-j8进行编译。第一次编译的时间很长很长,建议早上把电脑打开,然后让他开始编译去吧,我是快要吃晚饭的时候发现编译好了...
看到绿色的字出现,我就松了一口气,这几天的折腾没有白费啊!
####buildcompletedsuccessfully(01:04:37(hh:mm:ss))####这样我们的源码就算编译好了,在
aosp->out->target->product下就有我们要用的源码了。如果在Linux系统下,直接运行emulator命令就能将我们编译好的aosp跑到虚拟机里面去。
而Macos则比较费劲了,反正我尝试了各种办法,最终还是没有将编译好的代码跑到虚拟机上。
这两天考虑搞个nexus手机或者pixel手机,来刷下aosp源码。
现在先将输入的流程标记一下,等手机送到时再开搞,到时候说不定我会再发一个后续的文章。
将“编译后的代码”刷入到真机流程
①插上真机
②执行
sudoadbrebootbootloader让手机重启成为fastboot模式
如果此时手机界面展示
DEVICE_STATE-locked那么需要再执行
fastbootoemunlock让手机解锁
③输入
fastbootflashall-w刷入我们编译好的“源码”,然后等待即可。
由于目前没有真实的测试刷入的流程是否会有异常,这里我就不多说了。
如果看了这篇文章的朋友,恰好手头上有nexus手机或者pixel手机,一定要先搜索了解自己的手机可以恢复原系统的方法之后,再进行本文章的刷机操作;
并且在编译源码的时候,一定要先选择自己手机支持的源码,再进行后续操作。
否则手机刷成砖后就刷不回来,那就浪费了~~~
本篇文章就到这里,虽然历时将近一周,其实本身并不难,只要按照流程一步一步来就行,只不过由于下载源码、解压、同步、编译会耗费点时间,所以拖到了今天。
后续有关framework的文章也会持续输出,敬请期待!
电话+V:159999-78052
机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。