生態建設是微軟發展的重中之重,尤其是Windows應用的數量和質量問題,一直困擾著Win10用戶,特別嚴重限制了win手機的發展。為此微軟推出了UWP通用平臺,希望借此吸引更多開發者,并幫助他們將更多應用帶入到Windows10生態系統。
在今年Build 2016上,微軟正式開放了Project Centennial預覽,開發者只需通過Desktop App Installer,就能輕松將Win32轉制成Win10 UWP應用。
最近,微軟升級了這款工具,通過增添一些新特性,幫助開發者更好地轉制UWP應用。微軟還在博客文章中指出,開發者只需5步就能將Win32轉制成UWP應用。據介紹,在新版Desktop App Converter中,開發者能更輕松將.MSI文件轉換成UWP應用。不僅如此,微軟還計劃添加第三方支持,讓開發者能使用類似FireGiant等工具來完成UWP應用轉制。
在完成轉換后,開發者能在接下來增強(Enhance)和擴展(Extend)步驟,通過注入UWP特別代碼來改善應用程序。
在這兩個步驟中,開發者能為應用添加動態磁貼、操作中心支持、以及使用全新Windows 10 API來處理的安裝/卸載過程。
在完成上述兩個步驟后,開發者將進入移植(Migrate)和打包(Expand)環節。這里需要開發者要充分利用UWP應用在UI、框架上的優勢,讓UWP應用能更好地在手機、Xbox One、HoloLens等Windows 10設備運行。
完成上述操作后,開發者能成功將Win32轉制成UWP應用,并發布提交到Windows應用商店等待審核。未來,用戶能通過Windows應用商店下載到更多有趣和高質量的應用,這將進一步提升用戶的Windows應用體驗,從而推動微軟生態的發展。
開發者們,還不快到碗里來?
IT之家此前詳細報道了Win10 Mobile系統安裝安卓APK應用的消息,利用微軟Project Astoria內測項目泄露工具可以實現。另外還有開發者將APK應用轉換成Appx應用,但本質原理是一樣的。下面是IT圈網友BlackD為大家帶來的詳細剖析。
首先直裝apk的工具可以認為是微軟安卓兼容計劃Project Astoria的內測工具的一部分,其原理是在第一次用wconnect鏈接手機配對成功后,將工具debugger目錄下的agent包傳入手機,由手機內的Astoria platform執行,分為2個部分:
1.建立一個adb的server端,接受來自adb的連接請求和安裝包。
2.將安裝包以project astoria要求的方式部署在AoW子系統中
那appx又是怎么回事呢?
首先我們可以肯定在兼容安卓這個事情上,微軟已經部署了AoW作為子系統,所以最終運行的還是安卓的代碼(基于sdk的java或者機遇NDK的c)的運行時,而非真正的wp10的appx。所以這個轉制appx只是給apk封裝了一層皮。
首先我們把轉制成appx后的京東app解包看下:
很明顯有一個wpxap.apk,這個包尺寸和京東app的apk是一樣的,也就是原封不動的把京東的apk打包在了appx的外殼內。
然后看用紅框標注的4個文件,這4個文件是在手機AoW中部署apk的指導模板。那這四個文件哪里來的呢?
我們繼續解包直裝apk大法中,agent.zip,在agent.zip解開后,是一堆調試運行在手機中建立調試環境和adb連接的庫,甚至包括解壓縮的一些庫。其中有一個templates目錄,就是安裝模板。
可以在templates目錄下的phone\arm下找到如下文件:
對了,這4個文件就是appx轉制大法的核心,利用這個安裝模板在機器內部解壓部署apk。
appx里剩下的藍色框的文件其實是appx都有的一些常規圖標,簽名,配置文件,可以參考下IT之家WP版的appx結構。
那么原理就很清楚了:
1. appx大法是把微軟泄露的安裝apk模板作為appx的主體執行程序,把apk作為資源。利用appx的部署格式將apk復制進系統,然后執行安裝模板部署apk,這也是為什么appx大法也需要打開開發者模式的原因,因為這就是微軟內測項目的安裝模板。
2. apk大法就是直接利用微軟泄露工具,在電腦和win10手機之間建立了一條adb的隧道,通過很安卓化的adb命令將apk傳入手機,然后利用安裝模板安裝。
本篇文章原出自IT圈——《直裝apk和appx轉制原理分析--一回事》