Màn hình boot chính là thành phần đầu tiên chúng ta nhìn thấy khi khởi động 1 chiếc điện thoại hoặc máy tính bảng Android. Mặc dù nó không có chức năng cụ thể nào cả, nhưng chúng ta có thể dễ dàng nhận ra rằng 1 màn hình khởi động bắt mắt vẫn hấp dẫn hơn rất nhiều so với bình thường. Trong bài viết dưới đây, chúng ta sẽ cùng nhau tham khảo cách tạo mới hoặc thay đổi màn hình boot của Android cùng với 1 số tính năng khác đi kèm.
Một số điều cơ bản:
Phần cần thiết để tạo màn hình boot Android được chứa trong file nén với tên gọi bootanimation.zip (có thể tìm thấy trong thư mục media của phân vùng hệ thống như /system/media) có trên bộ nhớ trong của thiết bị. File này chứa toàn bộ thông tin yêu cầu để trình chiếu toàn bộ hoạt động trong quá trình boot, và được tự động tải khi thiết bị khởi động. Do vậy, quá trình mà chúng ta đang đề cập đến đơn giản chỉ là việc tùy chỉnh hoặc thay đổi file này mà thôi.
Bên trong file bootanimation.zip:
Trong phần này, chúng tôi sẽ nói chi tiết hơn về quá trình các hình động của Android làm việc như thế nào. Thực chất, quá trình màn hình khởi động của Android trông giống như 1 đoạn video đang chạy, và khi tiến hành giải nén file bootanimation.zip ra máy tính, chúng ta sẽ thấy:
– File desc.txt
– Thư mục part0 (chứa file ảnh *.png và các số theo thứ tự tăng dần)
– Các thư mục được sắp xếp tiếp theo như part1, part2…
Và toàn bộ quá trình hiển thị trên đều được sắp xếp theo thứ tự các bức ảnh có bên trong thư mục, với thông tin cụ thể được khởi tạo bên trong file text. Về mặt bản chất, file PNG trong thư mục part0 sẽ được hiển thị đầu tiên, và tiếp theo là file của part1… cứ tiếp tục như vậy theo tuần tự. Toàn bộ thông tin đều được định nghĩa cụ thể trong file desc.txt.
–Các thư mục:
Chức năng của những thư mục này khá đơn giản, chứa đựng các file PNG đặt tên theo số thứ tự, bắt đầu từ 0000.png hoặc 00001.png, và cứ thế tăng lên. Tại đây, hệ thống phải có ít nhất 1 thư mục, và không giới hạn số lượng.
-File desc.txt:
File text này có nhiệm vụ khởi tạo cách thức hiển thị của toàn bộ file ảnh trong các thư mục của quá trình boot. Cú pháp chung là:
Width Height Frame-rate
p Loop Pause Folder1
p Loop Pause Folder2
Ví dụ:
480 800 30
p 1 0 part0
p 0 0 part1
Như các bạn có thể thấy trong dòng đầu tiên, thông số 480 và 800 khởi tạo chiều rộng và cao của những chi tiết trong quá trình boot tính theo đơn vị pixel. Và những thông số này phải trùng khớp với độ phân giải màn hình của thiết bị, tiếp theo số 30 chính là fps – Frames per second, số lượng ảnh hiển thị trong 1 giây.
Dòng thứ 2 và 3 có định dạng cú pháp tương tự như nhau, bắt đầu bằng ký tự p, đại diện cho từng phần của các hình động xuất hiện trong quá trình boot, và cuối cùng kết thúc trong phần part0 hoặc part1. Các con số đằng sau chữ p định nghĩa số vòng lặp của những phần này trước khi chuyển sang phần tiếp theo, tham số 0 chỉ định toàn bộ vòng lặp này dừng lại ngay khi quá trình boot hoàn tất.
Số tiếp theo ngay sau đó chỉ định hành động tạm dừng, được thể hiện qua số lượng các khung hình, và được phân chia theo thời gian bằng cách gắn liền với tỉ lệ khung hình. Ví dụ: tham số tạm dừng là 15 nghĩa là quá trình tạm dừng này sẽ mất 15 khung hình để hiển thị, và với tỉ lệ 30 fps, 15 khung hình này sẽ chiếm mất nửa giây.
Một số lưu ý về độ phân giải: quay trở lại với ví dụ trên, quá trình hiển thị của giai đoạn boot sẽ được hiển thị ở độ phân giải 480 x 800 pixel, và được gọi là HDPI. Một số thiết bị di động tầm trung với diện tích màn hình 320 x 480 pixel và được gọi là MDPI, và cuối cùng là những chiếc điện thoại bình dân với diện tích chỉ là 340 x 320 pixel, tương ứng với tên gọi LDPI. Bên cạnh đó, quá trình boot này cũng tuân theo 1 quy luật nhất định, đó là khi được tạo dành riêng cho những thiết bị với độ phân giải thấp sẽ vẫn hoạt động tốt trên màn hình diện tích lớn hơn, nhưng sẽ hiển thị ở chính giữa, và tất nhiên sẽ đi kèm với những phần đường viền thừa ra. Còn ngược lại, khi áp dụng quá trình boot với độ phân giải cao trên những thiết bị di động với màn hình nhỏ hơn thì phần thừa bên ngoài tính theo tỉ lệ sẽ bị che khuất.
Tự tay làm Animation
Trước tiên, chúng ta cần 1 chương trình xử lý file nén như 7 – zip
– Chương trình xử lý ảnh quen thuộc, ví dụ như Adobe Photoshop, GIMP, Paint.NET, hoặc đơn giản chỉ là MS Paint
– Chương trình soạn thảo text, ví dụ NotePad của Windows, hoặc tốt nhất là NotePad++
– Thời gian để sáng tạo và xử lý các chi tiết bên trong bức ảnh
– Thông tin chính xác về điện thoại, cụ thể là độ phân giải của màn hình (nếu bạn không nắm rõ quá trình này, hãy sử dụng Google để tìm hiểu)
Quá trình tiến hành:
Sau khi tìm hiểu những thông tin cơ bản về quá trình boot – boot animation ở phần trên của bài viết, chúng ta hãy bắt tay vào thực hiện. Các bạn hãy tạo 1 thư mục mới trên máy tính và đặt tên là bootanimation, bên trong đó, tạo tiếp các thư mục khác tương ứng với từng phần của quá trình boot, đặt tên theo chuẩn là part0, part1…
Sử dụng chương trình xử lý đồ họa và tạo các bức ảnh với cùng 1 kích thước, sau đó lưu lại trong từng thư mục dưới định dạng PNG, theo thứ tự tương ứng. Ví dụ, nếu phần đầu tiên của chúng ta bắt đầu bằng 00000.png cho tới 00075.png thì phần tiếp theo bắt buộc phải bắt đầu từ 00076.png.
Sau khi chuẩn bị xong các thư mục và file ảnh cần thiết, hãy tạo tiếp file desc.txt trong thư mục bootanimation. Mở file text này theo cú pháp đã đề cập bên trên, lưu ý rằng nếu các bạn thiết lập thông số vượt quá 30 fps sẽ có thể gây ra lỗi hiển thị trên 1 số thiết bị. Và bước cuối cùng, chúng ta sẽ phải chọn tất cả thư mục và file bên trong bootanimation, kích chuột phải và chọn 7 – zip > Add to archive, lưu dưới định dạng *.zip, Compression level là Store.
Như vậy là chúng ta đã hoàn tất những phần cơ bản cần thiết, tiếp theo là quá trình áp dụng vào điện thoại. Tiếp theo, chúng ta sẽ phải copy file nén này vào 1 trong 2 thư mục sau trên điện thoại: /data/local hoặc /system/media, tuy nhiên mỗi thư mục lại đi kèm với ưu điểm và nhược điểm khác nhau.
Với đường dẫn /data/local thì ưu điểm dễ nhận thấy nhất là hệ thống sẽ không yêu cầu quyền truy cập root, do vậy có thể dễ dàng hoạt động với tất cả các thiết bị non – rooted mà không phải lo lắng khi thay đổi bất cứ thành phần nào trong phân vùng /system. Hơn thế nữa, nếu file nén bootanimation.zip được tìm thấy trong cả 2 thư mục thì Android sẽ bỏ qua file tại /system/media và nhường quyền ưu tiên cho /data/local. Còn nhược điểm của quá trình này là mỗi lần thực hiện thao tác hard reset (hay còn gọi là full data wipe hoặc factory reset) thì toàn bộ thành phần boot animation sẽ bị mất.
Còn với phương án copy vào thư mục /system/media/ chỉ có thể thực hiện được nếu điện thoại của bạn đã được root và người sử dụng có quyền truy cập đọc và ghi dữ liệu lên phân vùng /system. Còn điểm lợi của việc này là nếu reset dù với bất kỳ cách nào, toàn bộ quá trình boot animation sẽ được giữ nguyên. Còn nhược điểm ở đây là nó yêu cầu ADB hoặc trình duyệt file tại mức root như Root Explorer hoặc Super Manager.
Những thao tác trên khá phức tạp và khó thực hiện đối với những ai không rành về kỹ thuật, do vậy chúng tôi sẽ miêu tả thêm 1 số các thao tác cụ thể khác dưới đây để copy bất cứ file nào vào thư mục được yêu cầu, có thể áp dụng với tất cả các thiết bị qua đường dẫn /data/local hoặc chỉ với một số thiết bị đã được root bằng đường dẫn /system/media.
Một số yêu cầu tiếp theo:
– Điện thoại hoặc máy tính bảng Android sử dụng hệ điều hành Froyo 2.2 hoặc mới hơn. Quá trình thử nghiệm riêng biệt đã thành công trên Froyo vàGingerbread.
– Một số ứng dụng duyệt file như OI File Manager được cài trên điện thoại. Còn với những thiết bị root thì bạn phải cần đến công cụ hỗ trợ khác như Root Explorer hoặc Super Manager.
– File bootanimation.zip đã được chuẩn bị sẵn như phần trên của bài viết mô tả.
Khi sử dụng trình duyệt file:
– Kết nối điện thoại với máy tính qua cable USB, trỏ tới thiết bị lưu trữ như thẻ nhớ để bắt đầu copy file.
– Copy file bootanimation.zip cần cài đặt (bootanimation.zip mới) tới thẻ SD.
– Ngắt kết nối và sử dụng trình duyệt file trên điện thoại.
– Mở thư mục /system/media, copy file bootanimation.zip có sẵn tại đó vào bất kỳ thư mục nào khác trên thẻ SD.
– Copy ngược trở lại file bootanimation.zip mới (vừa chuyển từ máy tính qua).
– Đối với tất cả các thiết bị thì hãy copy file bootanimation.zip vào thư mục /data/local hoặc đối với điện thoại đã được root thì sau khi mở /system/media hãy copy file bootanimation.zip. Nếu bạn đang dùng Super Manager thì cần phải kích hoạt tính năng root trước tiên từ mục Settings, Hơn nữa, người dùng sẽ phải kết hợp phân vùng /system với chức năng đọc và ghi dữ liệu trước khi thao tác.
Với phương pháp ADB:
– Kích hoạt tính năng USB debugging trên thiết bị qua menu Settings > Applications > Development.
– Kết nối điện thoại với máy tính qua cable USB.
– Khởi động ứng dụng Prompt / Terminal trên máy tính.
– Chuyển tới thư mục lưu file bootanimation.zip trên điện thoại.
– Để áp dụng với tất cả các thiết bị, hãy gõ lệnh sau:
adb pull /data/local/bootanimation.zip c:\
adb push bootanimation.zip /data/local/
Hoặc với điện thoại đã root thì sử dụng lệnh:
adb pull /system/media/bootanimation.zip c:\
adb remount
adb push bootanimation.zip /system/media/
Sau đó, các bạn chỉ cần khởi động lại điện thoại và quá trình áp dụng boot animation của chúng ta sẽ hoàn tất.
Khôi phục lại boot animation nguyên bản:
Mặt khác, nếu các bạn muốn quay trở lại quá trình boot animation ban đầu thì chỉ cần copy file bootanimation.zip đã sao lưu ở bước trên, và gõ các câu lệnh như bên trên là được.
Chúc các bạn thành công!