/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.8) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0) /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 68.2.0) /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 331.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) @rpath/ATAuthSDK_D.framework/ATAuthSDK_D (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0) /System/Library/Frameworks/Accelerate.framework/Accelerate (compatibility version 1.0.0, current version 4.0.0) /System/Library/Frameworks/AdSupport.framework/AdSupport (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AddressBook.framework/AddressBook (compatibility version 1.0.0, current version 1.0.0) @rpath/App.framework/App (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0) /System/Library/Frameworks/CFNetwork.framework/CFNetwork (compatibility version 1.0.0, current version 1327.0.4) /System/Library/Frameworks/Contacts.framework/Contacts (compatibility version 0.0.0, current version 3535.5.0) /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1856.105.0) /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 1557.3.2) /System/Library/Frameworks/CoreLocation.framework/CoreLocation (compatibility version 1.0.0, current version 2665.0.10) /System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreMotion.framework/CoreMotion (compatibility version 1.0.0, current version 2665.0.10) /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony (compatibility version 1.0.0, current version 0.0.0) /System/Library/Frameworks/CoreText.framework/CoreText (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreVideo.framework/CoreVideo (compatibility version 1.2.0, current version 1.5.0) /System/Library/Frameworks/EventKit.framework/EventKit (compatibility version 1.0.0, current version 1716.2.2) @rpath/FMDB.framework/FMDB (compatibility version 1.0.0, current version 1.0.0) @rpath/Flutter.framework/Flutter (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1856.105.0) /System/Library/Frameworks/GLKit.framework/GLKit (compatibility version 1.0.0, current version 126.0.0) /System/Library/Frameworks/ImageIO.framework/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore (compatibility version 1.0.0, current version 612.3.6) /System/Library/Frameworks/MapKit.framework/MapKit (compatibility version 1.0.0, current version 14.0.0) /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices (compatibility version 1.0.0, current version 1141.1.0) /System/Library/PrivateFrameworks/Network.framework/Network (compatibility version 1.0.0, current version 1.0.0, weak) /System/Library/Frameworks/OpenGLES.framework/OpenGLES (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Photos.framework/Photos (compatibility version 1.0.0, current version 422.0.110) /System/Library/Frameworks/QuartzCore.framework/QuartzCore (compatibility version 1.2.0, current version 1.11.0) /System/Library/Frameworks/Security.framework/Security (compatibility version 1.0.0, current version 60157.60.19) /System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration (compatibility version 1.0.0, current version 1163.60.3) /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 5205.0.101) /System/Library/Frameworks/VideoToolbox.framework/VideoToolbox (compatibility version 1.0.0, current version 1.0.0, weak) /System/Library/Frameworks/WebKit.framework/WebKit (compatibility version 1.0.0, current version 612.3.6) @rpath/flutter_boost.framework/flutter_boost (compatibility version 1.0.0, current version 1.0.0) @rpath/path_provider.framework/path_provider (compatibility version 1.0.0, current version 1.0.0) @rpath/shared_preferences.framework/shared_preferences (compatibility version 1.0.0, current version 1.0.0) @rpath/sqflite.framework/sqflite (compatibility version 1.0.0, current version 1.0.0) @rpath/video_player.framework/video_player (compatibility version 1.0.0, current version 1.0.0) @rpath/wakelock.framework/wakelock (compatibility version 1.0.0, current version 1.0.0) @rpath/webview_flutter.framework/webview_flutter (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AppTrackingTransparency.framework/AppTrackingTransparency (compatibility version 1.0.0, current version 1.0.0, weak) /System/Library/Frameworks/UserNotifications.framework/UserNotifications (compatibility version 1.0.0, current version 1.0.0, weak) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0) /System/Library/Frameworks/AVKit.framework/AVKit (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AuthenticationServices.framework/AuthenticationServices (compatibility version 1.0.0, current version 612.3.6, weak) /System/Library/Frameworks/CoreData.framework/CoreData (compatibility version 1.0.0, current version 1145.0.0) /System/Library/Frameworks/CoreImage.framework/CoreImage (compatibility version 1.0.0, current version 5.0.0) /System/Library/Frameworks/PhotosUI.framework/PhotosUI (compatibility version 1.0.0, current version 422.0.110) /System/Library/Frameworks/QuickLook.framework/QuickLook (compatibility version 1.0.0, current version 849.1.0) /usr/lib/libnetwork.dylib (compatibility version 1.0.0, current version 1.0.0, weak)
为了能减少系统因缺页中断产生的 Page In 操作,我们需要做的就是把启动链路上所有用到的方法都排在连续的页上,这样系统在加载符号的时候就可以减少相应的内存页数量的访问,从而减少整个启动过程的耗时 二进制重排具体实现
动态库改造:
项目用到的嵌入动态库主要是U3d,Flutter及其依赖库
U3d库因为有要求必须得用动态库,故不作改造
这里只把flutter依赖库改造为静态库,思路是在flutter模块的podfile里添加:
1 2 3 4 5 6 7
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['MACH_O_TYPE'] = 'staticlib' end end end