ANDROID TOÀN TẬP!

chuong5580
26/7/2012 4:2Phản hồi: 9
Bên HDVIETNAM.COM có 1 bác Bumble_Bee dịch lại "Android toàn tập" từ nguồn AndroidCentral
Thấy hay, nên xin mạn phép Sao y bài của bá ấy qua đây để anh em đọc và theo dõi.
Chân thành cảm ơn bác bumble_bee của hdvietnam.com.

Bài viết sẽ có rất nhiều phần, vì vậy xin anh em vào đọc, đề nghị "No comment", và cũng ko cần phải nhấn like.

Chân thành cám ơn ae tinhte!
9 bình luận
Chia sẻ

Xu hướng

Bài 1: Bộ nạp khởi động



Hệ điều hành Android là một hệ điều hành mã nguồn mở được ứng dụng ở hầu hết các smartphone hiện nay. Nhưng ít ai có thể hiểu trọn vẹn về hệ điều hành này, cũng như cách thức hoạt động và điều khiển smartphone của nó. Chính vì thế, tôi mạn phép được giới thiệu sơ lược về hệ điều hành Android để các bạn đam mê công nghệ sẽ cập nhật thêm được một vài thông tin hữu ích qua loạt bài viết này.

Bài 1: Bộ nạp khởi động – Bootloader
Ở mức độ cơ bản nhất, smartphone của bạn giống như một ổ đĩa cứng đã được phân vùng hoàn chỉnh. Một trong số các vùng đó lãnh nhận trách nhiêm nặng nề: chứa tất cả các tập tin khởi động của hệ điều hành Android; số còn lại nhận trách nhiệm lưu trữ tất cả các phần mềm, dữ liệu của bạn. Tại đó bạn có thể làm được rất nhiều thứ với các công cụ có sẵn.

Có thể nói rằng, bộ nạp khởi động cũng giống như một trạm kiểm soát an ninh cho hệ thống. Nếu bạn thay đổi bất cứ thứ gì trên phân vùng này, bạn có thể phá vỡ hoạt động ổn định của hệ điều hành. Hoặc nếu bạn rành về lập trình, bạn có thể tùy chỉnh hệ thống phù hợp với bạn hơn.

Có rất nhiều sự phàn nàn về việc bootloader bị mã hóa. Và trên thực tế, đa số các điện thoại đều khóa phân vùng này lại, kể cả các nhà phát triển được cho là gần gũi với bạn như Nexus. Nói một cách chính xác nhất, tất cả các phân vùng khởi động đều được khóa và mã hóa chặt chẽ, nghĩa là bạn khó có thể mở nó một cách dễ dàng và các lệnh mở khóa tương tự như “fastboot oem unlock” sẽ chẳng ăn thua gì!


Chính việc khóa bootloader đã nảy sinh nhiều vấn đề trong việc thay thế linh kiện giữa các dòng sản phẩm. Điều đó đã mở ra cuộc chạy đua giữa các nhà sản xuất phần cứng trong vấn đề này. HTC, Samsung và Motorola đều khóa bootloader của họ. Tuy nhiên trong những năm gần đây, đặc biệt trong vài tháng gần đây, hầu hết các nhà sản xuất đều cung cấp một số công cụ hoặc mật mã để người sử dụng có thể truy cập vào bootloader của mình. HTC và Sony Ericsson đã cung cấp ứng dụng để bẻ khóa bootloader của họ, ASUS chỉ cung cấp ứng dụng này trên một số phiên bản hạn chế của hãng. Sony Ericsson, Motorola hứa sẽ trình làng ứng dụng đó trong thời gian sớm nhất, LG và Samsung hứa sẽ cung cấp các sản phẩm mà bootloader không bị khóa.

Câu hỏi được đặt ra là tại sao bootloader lại bị khóa lại? Có rất nhiều câu trả lời và câu trả lời đáng chú ý nhất và cũng là giá trị nhất đó chính là để hạn chế dữ liệu trên hệ thống của bạn bị đánh cắp, hay là bị hack. Trong hệ thống đó chắc chắn sẽ chứa những dữ liệu nhạy cảm mà hacker có thể lợi dụng để làm thiệt hại đáng kể cho bạn.

Chính vì lý do đó mà các nhà sản xuất đã tốn một khoản không nhỏ đầu tư nghiên cứu về vấn đề này. Tuy nhiên, cũng có rất nhiều ý kiến trái chiều về việc có hay không có sự cần thiết của việc “lock boodloader”. Câu trả lời dành riêng cho các bạn.


Các bạn hãy đón xem bài 2: Ngôn ngữ của Android
Bài 2: Ngôn ngữ của Android



Tiếp theo loạt bài về Android, tôi sẽ tiếp tục giới thiệu với các bạn về Ngôn ngữ của Android.
Mỗi một hệ điều hành, phần mềm đều được lập trình hoàn toàn khác nhau trên các công cụ lập trình của họ. Và các nhà lập trình thường gọi chúng là các ngôn ngữ máy tính. Chắc hẳn bạn đã từng nghe ở đâu đó về C, C++, Java, PHP, HTML …. Đó chính là một vài ngôn ngữ của máy tính.

Android chắc chắn cũng sẽ có ngôn ngữ riêng của Android. Một trong đó chính là Dalvik.

Thực chất, Dalvik không hẳn là một phương tiện lập trình để viết thành ngôn ngữ của Android. Có thể giải thích một cách cơ bản Dalvik chính là một máy ảo chạy các ứng dụng được viết bằng Java. Chương trình Java cơ bản sẽ mã hóa những ngôn ngữ lập trình của bạn bằng một số thuật ngữ riêng biệt để tạo ra những tập tin lập trình riêng biệt – bytecode – sau đó các tập tin này được biên soạn thành một tập tin dex. Chính Dalvik sẽ đọc và xử lý tập tin này.
Về bản chất, các tập tin của hệ thống ngôn ngữ lập trình (Java chẳng hạn) được biến đổi thành các tập tin dex mà các Dalvik có thể sử dụng (tương tự một số tập tin jar nếu một người sử dụng tiêu chuẩn Java VM). Các dữ liệu lập trình chỉ được dịch một lần ra các tập tin dex, giúp tiết kiệm không gian và sử dụng đĩa cứng tiết kiệm hơn. Các tập tin đó có thể được sửa đổi đôi chút khi bạn cài đặt một ứng dụng để tối ưu hóa cho điện thoại di động của bạn. VM Dalvik được viết dành riêng cho Android sử dụng.
Chắc chắn bạn sẽ khó hiểu những vấn đề nói trên. Nghĩ một các đơn giản. ví dụ bạn muốn xây dựng một ứng dụng Java cho máy tính của bạn, bạn sẽ cần chạy một Java Virtual Machine để biên dịch mã nguồn. Điều này lý giải vì sao các ứng dụng Java có thể chạy trên bất kỳ hệ thống nào. Dalvik là một phiên bản tối ưu hóa của một Java Virtual Machine, được xây dựng từ dự án Apache Harmony, Dalvik là một phiên bản mã nguồn mở để chạy tốt hơn so với một tiêu chuẩn Java VM trên phần cứng hạn chế của một hệ thống nào đó. Dalvik cũng được thiết kế để sử dụng như một máy chủ đa nhiệm tại một thời điểm nhất định nào đó. Điều thú vị là Dalvik là một phần mềm mã nguồn mở, có thể được sử dụng trên các hệ điều hành khác, nó được sử dụng trên các dòng BlackBerry PlayBook.

Để biết thêm các ngôn ngữ khác của Android, mời các bạn đón đọc bài tiếp theo.


Theo AndroidCentral
Bài 3: Hacking – Đập phá hay xây dựng


Khi đề cập đến hacking, bạn thường nghĩ ngay đến những gì tồi tệ nhất: mất cắp dữ liệu, đánh cắp thông tin cá nhân,… Đối với hacking trong Android Central là vấn đề truy cập vào phần mềm (hoặc phần cứng) và thay đổi mọi thứ cho đến khi chúng phù hợp với sở thích của riêng bạn. Đó chính là ý nghĩa đầu tiên của cụm từ Hacking khi nó mới ra đời.

Android hacking bao gồm nhiều thành phần, từ việc nhỏ nhặt nhất, thú vị nhất như: thay đổi biểu tượng, trạng thái và màu sắc của các biểu tượng,… cho tới những thành phần đồ sộ như: xây dựng tùy chỉnh AOSP ROMs,… Hầu hết thời gian cài đặt và sử dụng các công cụ hack này sẽ yêu cầu bạn xác nhận thông tin, nếu như bạn xâm nhập quá sâu vào hệ thống, việc yêu cầu xác nhận lại thông tin từ nhà sản xuất là khó tránh khỏi. Điều đó là cần thiết để bảo vệ bạn khỏi sự tấn công của hacker mũ đen.

Việc “hack” thông thường phải lựa chọn thiết bị cụ thể. Bạn sẽ không muốn thử với các thiết bị của HTC Droid Incredible hay Motorola Photon, hoặc thậm chí là các dòng Droid HTC Incredible 2.

Bạn cũng có thể là một “hacker” trước tiên bạn cần phải đọc sách để bạn có một cái nhìn sơ đẳng về cái mà mình muốn hack. Sau đó bạn cần phải có những công cụ để “quét ngang quét dọc” để tìm ra mấu chốt giải quyết vấn đề.

Tuy nhiên, cũng cần khẳng định lại một lần nữa là các bạn sẽ không muốn hack thiết bị của mình bao giờ.



Theo AndroidCentral
Bài 4: Kernel



Đối với những người đam mê hoặc là tín đồ của Android thì bạn sẽ bắt gặp khái niệm này.

Nói chính xác thì Kernel chính là nhân của hệ điều hành Android, nó chỉ dành riêng cho Android. Những hệ điều hành khác cũng có nhân của riêng nó, iOS, MacOS hay Windows. BlackBerry cũng có một kernel của riêng nó. Nhưng trong khuôn khổ bài viết này, chúng tôi chỉ đề cập tới nhân của những thiết bị xử dụng hệ điều hành Android.

Android là hệ điều hành sử dụng nhân Linux, nhưng không phải chính là nhân để chạy hệ điều hành Linux của các thiết bị chạy Linux. Có rất nhiều mã lập trình của Android sử dụng rất riêng so với hệ thống Linux, ví dụ như kernel của Google’s Android sử dụng có chế độ làm việc riêng của nó. Hệ thống lập trình OEMs là ngôn ngữ chủ đạo để viết nên hệ thống cho Kernel, bởi vì nó là phương tiện dùng để lập trình các hệ thống driver cho các phần cứng khác cho các phiên bản khác nhau của Android Kernel. Điều quan trọng của Kernel là kiểm soát và điều khiển phần cứng, hiểu một cách đơn giản, Kernel chính là một mối nối và là “thông dịch viên” giữa phần cứng và phần mềm.
Khi phần mềm cần phần cứng làm một việc gì đó, nó sẽ gửi yêu cần tới bộ vi xử lý và nó sẽ nói “các bạn nói bất cứ cái gì, chúng tôi sẽ đáp ứng cái đó”. Từ trình điều khiển độ sáng màn hình, mức âm lượng, hiệu suất tốc độ của thiết bị, điều khiển xung nhịp CPU. Ngay cả việc bạn di chuyển con trỏ chuột hay ngón tay của bạn lướt trên màn hình cảm ứng… tất cả đều được kiểm soát bởi kernel.


Thử ví dụ một việc điển hình: bạn nhấp vào nút “Search” trên smartphone của bạn để gọi ứng dụng tìm kiếm ra. Làm cách nào mà smartphone hiểu được rằng bạn đã nhấp vào nút “Search” đó? Khi tay bạn chạm vào màn hình cảm ứng của smartphone chính là bạn đã chạm vào một tọa độ đã được định vị sẵn của smartphone. Một phần mềm hệ thống sẽ kiểm soát toàn bộ những tọa độ có trên màn hình đã được mã hóa thành những tọa độ, phần mềm đó biết rằng hộp “Search” cư ngụ tại địa chỉ nào. Và khi tọa độ định vị của nút Tìm kiếm đó được “chạm phải”, khi đó phần mềm hệ thống sẽ nhận thông tin được mã hóa ghi nhận lại và chuyển cho Kernel xử lý tín hiệu vừa nhận được. Tại Kernel, lệnh vừa nhận được sẽ được xử lý và chuyển ngay đế những nơi có nhiệm vụ thực thi lệnh đó và sẽ được “chấp hành” tại đó.

Đôi khi hệ thống và Kernel không chỉ nhận được những thông tin từ những những dòng lệnh được đưa vào từ màn hình cảm ứng, nó cũng có thể nhận tín hiệu từ một thiết bị khác bằng cách này hay cách khác, Bluetooth chẳng hạn.

Nghe có vẻ phức tạp, nhưng logic của máy tính luôn luôn đi theo một hướng đã được định sẵn: một hành động sẽ tạo ra một hiệu quả, không lộn xộn. Nếu không có Kernel thì bạn chả làm ăn gì được kể cả với smartphone. Không có “người” nhận lệnh, xử lý lệnh, thực thi và kiểm soát những nơi thực thi lệnh đó. Tất cả phần mềm và phần cứng của chiếc smartphone trị giá bạc triệu cũng chả có ý nghĩa gì. Tuy nhiên, để Kernel hiểu được và nhận diện được các phần cứng khác nhau, các nhà sản xuất phải cho Kernel “học” bằng một phần mềm mà chúng ta vẫn hay gọi là “driver”. Với Android Kernel, tất cả những kết nối đều thông qua một hệ thống ngôn ngữ lập trình API và OEM, các nhà phát triển cũng dựa vào hệ thống này mà viết nên những hệ thống driver của họ.

Có một số nhà phát triển hệ thống cho Kernel như: Abyss kernel, FM kernel, Speedmod kernel, Franco kernel, Cfoot kernel.


Theo AndroidCentral
Cái này khá hay nhưng vẫn ở dạng chưa dễ hiểu. ZZ đang viết cái tương tự nhưng ở dạng dễ hiểu hơn. Tình cờ lại gặp cái này và đã có người viết 😃. Nguồn tham khảo tốt 😃
lhlan
TÍCH CỰC
11 năm
@Zanr Zij Cho tham khảo đi bác.


Sent from my PadFone 2 using Tinhte.vn
hay

Gửi từ IM-A820L của tôi bằng cách sử dụng Tapatalk 2
ko dễ hiểu nhưng cũng thank :p
sao ít quá vậy ta

Xu hướng

Bài mới










  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019