最近看了一些android源码,看到ActivityManageService时发现android.jar中并没有ActivityManageService的源码,经查资料,该java文件是在frameworks/base/services/java/com/android/server/am/目录下,想看到它的话貌似只能去查看较为完整的android源码了。
找到了一篇在mac下编译android源码的文章,按照所写内容一步一步操作,在使用命令
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
创建了磁盘映像并使用命令
hdiutil attach ~/android.dmg -mountpoint /Volumes/android;
装载之后,却并不能在装载后的目录/Volumes/android下创建目录,即mkdir XXX时报了一个错,大致意思是这个磁盘映像是一个“read-only filesystem”,不能够创建目录或文件。
首先,想着可能是权限不够吧,就在mkdir前面加一个sudo再次执行,并没有什么卵用,仍旧报“read-only filesystem”
之后,尝试把/Volumes/android的目录权限修改为可读写的,切换到/Volumes目录下,执行"chmod a+w android",仍旧报“read-only filesystem”
后来,去网上搜索一些相关资料,找到了最终的解决方法:在用户主目录下执行命令
hdiutil convert android.dmg.sparseimage -format UDRW -o android.dmg.sparseimage
试过之后,可读写了,问题解决
参考资料:
- How to write to a Mac OSX read-only filesystem?,在这个链接里找到磁盘映像转换格式的convert命令
- Mac OS X 中一些常用的命令行技巧,在这个链接里找到-format后面的可选项,UDRW表示可读写格式