Diễn đàn rao vặt Tuổi trẻ
Các lỗi hay gặp - lập trình android FfWzt02
Diễn đàn rao vặt Tuổi trẻ
Các lỗi hay gặp - lập trình android FfWzt02
 


#1

02.03.17 10:46

avatar

tuan11nguyen

Thành viên gắn bó
0988485689 https://www.facebook.com/
Thành viên gắn bó
Raovat.tuoitrevn.NET - Diễn đàn rao vặt hiệu quả - Đăng tin rao vặt miễn phí chất lượng, 5 năm uy tín toàn quốc .Lập trình viên hay mắc phải lỗi gì nhất? 
Bắt đầu vào bài lập trình android cơ bản
Android là một nền tảng được nhiều người ham chuộng , miễn phí và dễ tùy biến nên đã mau chóng phát triển và hiện diện trên nhiều loại thiết bị di động như: phôn , máy tính bảng , đồng hồ sáng dạ , tivi , ô tô…
Sau sự ra mắt của AOSP và bản update Lollipop , Android đã mang lại cho người dùng khá nhiều kì vọng. Phong cách thiết kế Material hứa hẹn đem lại trải nghiệm tốt hơn.
Có cả ngàn thiết bị Android khác nhau kích tấc màn hình , chip xử lí , cấu hình phần cứng và version phần mềm. Sự đa dạng ấy dẫn tới việc áp dụng Android mà bạn viết có khả năng không hoạt động được trên các thiết bị khác nhau cho dù bạn có là một lập trình viên Android nhiều kinh nghiệm.
bỏ quá sự khác biệt kia , phần lớn lỗi Quần chúng biết đến lại là lỗi logic. Những lỗi này có khả năng dễ dàng xử lí nếu chúng ta làm đúng từ những điều cơ bản.
Dưới đây là danh sách 10 lỗi thường thấy ở các lập trình viên Android.
Các lỗi hay gặp - lập trình android 1.-hinh-error
Lỗi đầu tiên: gắng gổ bắt chước giao diện iOS
hiện nay lỗi này đã trở nên ít phổ quát hơn ( một phần vì khách hàng đã nhận ra rằng Apple đã thiết lập những thời hạn thiết kế từ lâu rồi ). Nhưng dù có thế thì chúng ta vẫn đang và sẽ tiếp tục thấy những áp dụng không giả lại từ iOS.
Người dùng Android đã việc quen thuộc với nền tảng Android , việc gắng gổ nhồi các chuẩn thiết kế của iOS vào Android sẽ rất tối dạ. Ví như bạn không có lí do tót vời đáng giá nào để phá vỡ các nguyên tắc thì đừng làm thế.
Đây là một số ví dụ phổ quát cho lỗi này:


  1. Bạn không nên tạo các tab nhất mực mà chúng không ở phía dưới ( ví dụ: Instagram ).
  2. Các Icon thông tin hệ thống giao thông không nên màu mẽ
  3. Icon của áp dụng không nên có khung viền chữ nhật bo góc ( trừ khi logo của bạn vốn đã có nó , ví dụ như Facebook )
  4. Màn hình load áp dụng ( splash screen ) chỉ nên dùng khi thiết lập lần đầu hoặc giới thiệu , không nền dùng trong các trường hợp khác.
  5. Danh sách không nên có đánh dấu


Trên đây chỉ là một số ít trong số rất nhiều vấn đề lặt vặt có khả năng phá hỏng trải nghiệm người dùng.
Lỗi thứ hai: Lập trình viên chỉ thử áp dụng trên đúng thiết bị Android mình có
Trừ khi bạn muốn tạo ra một áp dụng phổ quát cho riêng loại thiết bị nào đó , nếu không thì áp dụng của bạn có khả năng sẽ trông khá tệ trên các thiết bị khác. Bạn nên lưu ý các vấn đề sau:


  • Density-independent pixels ( dp ) khác với pixel ( px ).
  • Resources được thêm nhiều lần vào trương mục đối với mật độ và định hướng khác nhau.
  • 9-patch drawables sẽ được kéo dãn cho khít với màn hình.


chắc chắn bạn không có cả ngàn thiết bị để thử , Android Emulator sẽ giúp giả lập gần đúng cấu hình thiết bị bạn muốn thử. Android Emulator có khả năng chọn được kích tấc màn hình , bộ nhớ , công năng cảm biến…. Còn nếu bạn muốn một trình giả lập tốt hơn nữa , hãy thử Genymotion , emulator chạy nhanh và có nhiều cài đặt giả lập phổ quát cho các thiết bị.
Còn một vấn đề nữa , bạn có thử xoay ọc ngang phôn hoặc emulator khi chạy thử áp dụng chưa? Bạn sẽ thấy ngay rất nhiều lỗi giao diện phải sửa.
Lỗi thứ ba: không dùng Intent
Intent là một trong những thành phần nông dân cốt lõi của Android. Nó là một cách để truyền dữ liệu giữa các phần của một áp dụng hoặc hơn thế nữa , giữa các áp dụng khác nhau trong một hệ thống.
giả sử bạn có một áp dụng gallery ảnh cho phép chia sẻ link download ảnh qua SMS. Lựa chọn nào sau đây sẽ logic hơn?
lựa chọn 1:


  • Yêu cầu cấp quyền SEND_SMS

  • Viết code gửi SMS theo cách của bạn , sử dụng SmsManager
  • Giải thích cho người dùng tại sao áp dụng của bạn cần thâm nhập các dịch phụ có khả năng tính phí và tại sao người dùng phải cấp quyền thâm nhập đó cho áp dụng của bạn.


lựa chọn 2:


  • Bắt đầu một SMS Intent và để việc gửi Sms cho một áp dụng chuyên gửi Sms


Intent sendIntent = new Intent( Intent.ACTION_VIEW );
sendIntent.setData( Uri.parse( "sms:" + telephoneNumber ) );
sendIntent.putExtra( "sms_body" , x );
startActivity( sendIntent );
Nếu bạn còn đắn đo thì câu phúc đáp là: cách thứ 2 là cách tốt nhất.
biện pháp này có khả năng áp dụng với hồ hết mọi thứ , ví như: chia sẻ nội dung , chụp ảnh , quay video , chọn các giao thông , thêm sự kiện , …
Trừ trường hợp có một lý do hợp lý để tự làm phần công năng Sửa sang ( ví dụ: camera có áp dụng các bộ lọc chỉnh ảnh ) , nếu không thì cứ dùng Intent. Nó sẽ kiệm ước tót vời nhiều thời kì lập tình và giảm bớt các đề nghị cấp quyền không cần thiết trong file AndroidManifest.xml.
Học php nâng cao với tài liệu laravel
Nếu bạn không muốn đào sâu nghiên cứu về core Android hay phản đối việc sử dụng fragment thì bạn nên dùng fragments bất kể khi nào có khả năng. Căn bản thì fragments và cursor loaders có mục đích tốt nhưng cách thực hành thì khá thô.

vấn đề này từng rất phổ quát trên Android 2.x trong khi đó các version mới hơn của hệ thống giao thông không cho phép bạn tạo các lời gọi network trong main thread.
Để tránh bị lỗi này , tốt nhất là bạn luôn sử dụng worker/background thread cho các trường hợp sau: gọi network ( network call ) , nạp hình ảnh ( bitmap loading ) , xử lí ảnh ( image processing ) , xét hỏi dữ liệu ( database querying ) , đọc/ghi vào thẻ nhớ ( SD reading/writing ).
Lỗi thứ sáu: tự code lại những thứ người khác đã làm
Một số bạn muốn tự code phần tiếp xúc với nhau với server trong một background thread , đó chưa chắc là một lựa chọn tốt. Gọi network , nạp ảnh , thâm nhập cơ sở dữ liệu , parse JSON hay đăng nhập mạng từng lớp , đó là những thứ áp dụng của bạn thường xuyên làm nhất. Không chỉ áp dụng của bạn mà tất cả các áp dụng khác cũng thế. Vậy viết lại làm gì? Hãy nhớ là Android đã phát triển thành một nền tảng yên ổn và có nhiều thư viện có sẵn hỗ trợ cho bạn. Ví dụ:
:


  1. Tính toán khung màn hình bạn muốn hiện ảnh.
  2. Co dãn ảnh hay crop ảnh cho phù hợp.
  3. Chỉ hiển thị cái gì có khả năng hiển thị.


Lỗi thứ chín: dùng hệ thống giao thông view quá nhiều cấp
Đối với Android , layout có khả năng được biểu lộ qua XML. Để vẽ ra các nội dung cần thiết , XML cần được phân tích , màn hình cần toan tính kích tấc và mọi thành phần nông dân đều phải được đặt ở vị trí ăn nhập. Đó là một quá trình hao tốn thời kì và tài nguyên hệ thống giao thông để hoàn cảnh tối ưu mọi thứ.
Dưới đây là cách ListView ( hay mới hơn là RecyclerView ) hoạt động.
Nếu một layout đã được tăng kích tấc một lần , hệ thống giao thông sẽ dùng lại nó. Tuy vậy , việc tăng kích tấc layout vẫn có khả năng xảy ra ở một đôi thời điểm.
ví dụ bạn muốn tạo một lưới 3×3 với nội dung ảnh. Bạn có khả năng dùng một LinearLayout dọc có chứa 3 LinearLayout có cùng giá trị weight , mỗi cái lại có 3 ImageViews có cùng giá trị weight.
Các lỗi hay gặp - lập trình android 4.-layout
Với cách này kết quả sẽ là một cảnh báo “nested weights are bad for performance”.
Có một cách nói trong giới lập trình Android rằng:
“Nếu không quan hoài tới hiệu suất thì kiến trúc nào cũng như nhau”.
Trong trường hợp này RelativeLayout hoặc GridLayout sẽ thay thế được kiểu LinearLayouts lồng nhau một cách hiệu quả.
Bạn nào muốn tìm hiểu về lập trình php có khả năng xem tại đây.
Lỗi thứ mười: không thiết lập giá trị minSdkVersion bằng 14
Đây thực tình cũng không phải là lỗi nhưng lại là một thói quen xấu.
Android 2.x là một cột mốc quan yếu trong sự phát triển của nền tảng Android nhưng có một đôi thứ nên bỏ đi. Việc hỗ trợ các thiết bị cũ gây Rắc rối cho bảo trì code và giữ lại quá trình phát triển.
Những con số liệt kê rất rỏ rành đã cho thấy người dùng đang mong nhiều điều ở tương lai và các lập trình viên nên bắt kịp xử phát triển của thời đại.
vấn đề này không áp dụng đối với một số thị trường lớn với các thiết bị cũ ( ví như Ấn Độ ) , và nếu không đặt minSdkVersion bằng 14 đối với áp dụng Facebook thì vài triệu người dùng yêu thích mạng từng lớp đã bị bỏ quá. Nhưng nếu bạn muốn một khởi đầu mới và tạo ra trải nghiệm người dùng tốt nhất thì nên coi xét loại bỏ quá khứ. Khiến người dùng cảm thấy cần phải nâng cấp thiết bị , nâng cấp hệ điều hành để có trải nghiệm tốt hơn , như vậy mới thúc đẩy họ đến với các version cao cấp của Android và rồi tiêu tiền cho mục đích đó.
Kết luận
Android là một nền nảng mạnh mẽ và phát triển rất mau chóng. Các lập trình viên Android nên thường xuyên tìm cách nâng cao kỹ năng của mình và giảm thiểu sai sót.
Bài học bữa nay kết thúc tại đây , các bạn chú ý theo dõi các bài học sau nhé.
Chúc các bạn Học hỏi tốt.

Quyền hạn của bạn

   
Bạn không có quyền trả lời bài viết