2009-05-28 11 views
5

Tôi muốn giữ ứng dụng của mình dưới 10,0MB để dễ dàng tải xuống trong cả môi trường mạng di động và Wi-Fi. Theo kinh nghiệm của bạn, bạn có gặp bất kỳ cách nào tốt để giữ ứng dụng của bạn mỏng không? Nếu vậy xin vui lòng chia sẻ. Một số nguyên tắc tốt để giữ kích thước tệp ứng dụng iPhone dưới 10.0MB là gì?Một số nguyên tắc tốt để giữ kích thước tệp ứng dụng iPhone dưới 10.0MB là gì?

Trả lời

6

Hầu hết các ứng dụng tôi đã xử lý mà vượt quá 10 triệu là do tài nguyên, thường là hình ảnh và âm thanh. Định cỡ chính xác chúng là rất quan trọng. Lưu ý rằng iPhone thực hiện một số thao tác nén cho bạn một cách tự động khi gói cho thiết bị, do đó kích thước của những thứ trong Trình mô phỏng có thể khác hoàn toàn so với trên thiết bị.

Giống như tất cả các bài tập tối ưu hóa, trước tiên bạn muốn xây dựng một hệ thống vững chắc, lành mạnh và sau đó tập trung nỗ lực tối ưu hóa vào các phần gây ra các vấn đề lớn nhất. Tôi sử dụng du cho việc này:

  • xây dựng cho các thiết bị trong phiên bản
  • Đến xây dựng/phát hành-iphoneos/.app
  • du -ak | sort -rn | head

này sẽ cung cấp cho bạn một danh sách các nơi những điều hàng đầu là. Thông tin này bằng kB, nhưng được làm tròn lên khối tiếp theo (4k trên máy Mac). Nhưng bạn chỉ cần tìm những gì lớn, không làm việc ra kích thước chính xác của tất cả mọi thứ.

Đặc biệt là những thứ được sao chép vào Tài nguyên của bạn. Những điều thú vị đôi khi nhận được trong đó, đặc biệt là tài liệu mà bạn đã thêm vào dự án. Kiểm tra điều này, tôi nhận thấy rằng mẫu dự án của riêng tôi đã sao chép các tệp xcconfig vào gói (phải sửa chữa ...)

Nếu bạn có rất nhiều NIB cục bộ, thì có thể bạn muốn xem xét không bản địa hóa các NIB, và thay vì sử dụng IBOutlet UILabels. Không bản địa hóa NIB nếu không có văn bản được bản địa hóa thực tế. Chỉ vì bạn bản địa hóa một NIB không có nghĩa là bạn phải bản địa hóa tất cả chúng.

Thông thường cài đặt xây dựng cho iPhone đã tích cực trong việc giảm kích thước, vì vậy tôi sẽ không gây rối với điều đó mà không nghiên cứu những gì bạn đang thay đổi.

Hãy theo dõi các lớp Objective-C bằng nhiều phương pháp mà bạn không bao giờ gọi. Mục tiêu-C là động, vì vậy bạn không thể làm chết mã trên nó như trong C. Không có cách nào để biết tại thời gian biên dịch cho dù một bộ chọn có thể được sử dụng tại thời gian chạy. Vì vậy, nếu bạn có các đồ vật có bồn rửa chén trong đó "chỉ trong trường hợp", bạn có thể muốn loại bỏ những vật đó xuống. Nhưng nói chung chúng ta không nói nhiều về không gian ở đây so với một tệp âm thanh duy nhất. Tôi chỉ đề cập đến nó cho trường hợp hiếm hoi mà bạn có một đối tượng thực sự rất lớn mà bạn chỉ liên kết cho một số phương pháp lớp hoặc hằng số hoặc tương tự.

2

Một mẹo sẽ là sử dụng định dạng phương tiện nén. Ví dụ. nếu bạn đang sử dụng các tệp âm thanh, bạn có thể xem xét sử dụng mp3 thay vì AIFF hoặc WAV, với mức giá có thể có của chi phí xử lý cao hơn một chút. Một thực thi 10mb âm thanh cao bất thường vì vậy có lẽ một ứng dụng lớn sẽ chứa rất nhiều nội dung phương tiện truyền thông (hình ảnh, âm thanh).

0

Quá trình xây dựng tự động nén các tệp PNG cho bạn (sử dụng pngcrush, không tự làm điều đó), vì vậy thực sự bạn phải có khá nhiều nội dung để vượt quá 10MB.Tôi nghĩ rằng lo lắng về điều này là một tối ưu hóa sớm và bạn có thể không cần phải quan tâm cho đến khi bạn thấy mình nhận được sau này.

1

Chuyển đổi một vài hình ảnh lớn hơn thành màu xám nếu nó sẽ hoạt động với giao diện của ứng dụng. Nếu bạn có thể làm cho một vài màu xám hoàn toàn, tiết kiệm là khá đáng kể.

0

tipos này chủ yếu sẽ áp dụng cho trò chơi iPhone:

  • Sử dụng JPG thay vì PNG cho hình ảnh mà không có sự minh bạch.
  • Cho âm thanh của bạn bằng mp3, render chúng vào WAV lần đầu tiên ứng dụng được tải và lưu chúng vào thư mục Tài liệu ứng dụng.
Các vấn đề liên quan