hãy xem trang này để biết một số mẹo về cách bạn có thể tạo tệp jar nhỏ hơn - http://wiki.java.net/bin/view/Games/4KGamesDesign. Mặc dù một số có thể không áp dụng vì bạn không cố gắng tối thiểu hóa tuyệt đối, có một số mẹo chung mà bạn có thể áp dụng mà không ảnh hưởng đến chất lượng mã.
nhưng tóm tắt ở đây:
Giữ mã của bạn xuống một lớp. Mỗi lớp cho biết thêm chi phí của một mục trong tệp JAR, cũng như một danh sách lớp và danh sách lớp hoàn toàn mới.
Giữ phương pháp của bạn ở mức tối thiểu. Mỗi phương thức cho biết thêm chi phí trong tệp lớp. Tất cả những gì bạn cần là một phương thức main()
và các phương pháp để thực hiện thói quen bàn phím và/hoặc chuột.
Không sử dụng các biến toàn cầu. Biến toàn cầu yêu cầu siêu dữ liệu đặc biệt trong lớp để xác định. Tuy nhiên, các biến phương pháp cục bộ chỉ là các mục nhập ngăn xếp và không tốn thêm chi phí nào để sử dụng.
Sử dụng máy nén tốt như 7Zip hoặc KZip để tạo tệp JAR của bạn. Tiện ích JAR chủ yếu được thiết kế cho tính chính xác, không phải tỷ lệ nén.
Sử dụng bộ obfuscator như ProGuard, JoGa hoặc JShrink để tối ưu hóa kích thước lớp học của bạn.
Sử dụng một ký tự đơn cho tên tệp lớp. Điều này làm giảm kích thước của nó trong nội bộ, giảm lượng thông tin mà chương trình Zip lưu trữ và giảm kích thước của tệp kê khai.
Tham khảo càng ít lớp càng tốt. Mỗi lớp bạn tham khảo sẽ thêm toàn bộ gói và tên lớp, cộng với chữ ký phương thức bạn đang gọi.
Dự phòng (chẳng hạn như sử dụng cùng tên cho tất cả các phương pháp và lớp và trường) cải thiện tỷ lệ nén.
Phương pháp được đặt ở chế độ riêng tư và cuối cùng có thể được trình tối ưu hóa lớp đưa vào.
Sử dụng phương thức String.valueOf()
để chuyển đổi nguyên thủy thành chuỗi. Ví dụ: ""+number
mở rộng tới: new StringBuffer?().append("").append(number).toString()
lãng phí rất nhiều không gian trong các tham chiếu lớp và phương thức mới.
Chuỗi tĩnh, phao nổi và số nguyên được sử dụng trong mã nguồn được lưu trữ trong nhóm không đổi. Kết quả là, bạn càng có thể sử dụng lại giá trị tĩnh, thì lớp của bạn sẽ càng nhỏ hơn .
Bạn có thể sử dụng tự do biến tĩnh cuối cùng cho các hằng số. Điều này sẽ làm cho mã của bạn dễ đọc hơn và ProGuard sẽ tối ưu hóa việc này để không có thêm chi phí.
Ứng dụng này là 500k trừ thư viện. Nó không phải là thứ duy nhất ảnh hưởng đến thời gian khởi động, nhưng tôi nghĩ nó đủ quan trọng để điều tra thêm. – amarillion