9
回答
程序为什么要安装?安装到底起这么作用?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
程序不安装也能运行,那为什么要安装呢?我是菜鸟,求高手解答。
<无标签>
举报
xiaoteng
发帖于1年前 9回/659阅
共有9个答案 最后回答: 1年前

因为很多东西需要和操作系统结合,特别是公共链接库。在windows早期的时代,经常因为不同版本的链接库文件打架,很多软件甚至出现了安装了A,B就会出故障的问题。

1.写注册表,注册系统服务,文件关联……
2.根据操作系统类型做一些特殊配置
3.判断文件是否存在,存在的话进行合并(例如配置文件)
4.……等你等妹

举例来说吧,就拿我打包的基于PHP CLI HTTP Server和WebView开发App的PHPDroid.APK这个Android应用来说.

你发布APK应用时,需要用Java KeyStore比如我的phpdroid.jks签名,因为在应用安装时,Android系统会先验证签名,避免应用打包被篡改.

应用安装时,Android会为每个应用新建一个用户,这个用户既是应用运行时的用户,也是应用目录的所有者,比如:

上面PHPDroid这个应用的运行用户是u0_a78,应用的目录 /data/data/net.php.phpdroid 的所有者也是u0_a78,Android文件系统的权限跟Linux的UGO(User Group Other)权限是一模一样的,毕竟Google是直接拿Linux来当Android操作系统内核的.

但Android在Java应用层面还配置了一层权限,比如PHPDroid里的WebView要访问网络就需要:
<uses-permission android:name="android.permission.INTERNET" />
比如PHPDroid要写手机的SD存储,就要:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
有了这个权限后,用户就可以基于WebView用PHPDroid里的PHP直接读写SD卡了,甚至可以开发一个运行在WebView里的文件管理器,相册管理器等等.
--- 共有 1 条评论 ---
xiaoteng谢谢大哥,真是有点深奥啊 1年前 回复

看系统吧,Mac 下 95% 的软件都不需要安装,拖到文件夹里直接使用,也能识别打开类型,访问受限资源也是在访问的时候要你输入密码,跟随系统启动等。

最烦的就是注册表。windows最大的败笔,dos->win3.2->win95->win98->win2000->winxp->win7。

真正工作还是用mac吧。

--- 共有 1 条评论 ---
eechenWindows注册表在PHPer看来就是一个 $win = array(); 全局作用域的哈希表(多维数组),可以存储各种应用和模块的配置信息,其实还挺方便的. 1年前 回复
顶部