Thứ Năm, 28 tháng 3, 2019

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên tối thiểu nhất có thể.

Nhưng một số ứng dụng như một số game 3D cần xử lý cấp cao trên Android.

Để cung cấp cho các ứng dụng này, android hiệu suất cao đã giới thiệu RenderScript. Nó là khung dựa trên Android được sử dụng để chạy các ứng dụng thực hiện các tác vụ tính toán rất cao. 

Học lập trình Android chuyên nghiệp
Học lập trình Android chuyên nghiệp

Việc phát triển trên khung này được thực hiện trong Bộ phát triển bản địa (NDK) do lập trình Android cung cấp. RenderScript cực kỳ hữu ích cho các ứng dụng thực hiện các loại hành động sau

Kết xuất 3D


Đang xử lý hình ảnh

Nhiếp ảnh tính toán

Tầm nhìn máy tính

Cách thức hoạt động của RenderScript

Khung RenderScript về cơ bản dựa trên tính toán song song dữ liệu. Nó phân phối khối lượng công việc ứng dụng của bạn trên tất cả các bộ xử lý có sẵn trên thiết bị của bạn như CPU ​​hoặc GPU đa lõi.

Phân phối khối lượng công việc song song này giải phóng lập trình viên khỏi sự căng thẳng của cân bằng tải và lập lịch làm việc.

Bạn có thể viết các thuật toán chi tiết và phức tạp hơn cho ứng dụng của mình mà không phải lo lắng về sức mạnh tính toán.

Cách bắt đầu


Để sử dụng RenderScript Framework, bạn phải tuân theo hai điều -

Hạt nhân RenderScript

API RenderScript

Hạt nhân RenderScript

Nhân là một chương trình quản lý các hướng dẫn xử lý dữ liệu và quản lý khối lượng công việc trên Bộ xử lý trung tâm. Hạt nhân là một phần cơ bản của hệ điều hành.

Tương tự để chạy khung RenderScript, chúng ta cần một tập lệnh viết có tên là Kernel để quản lý tất cả các yêu cầu xử lý dữ liệu từ ứng dụng của chúng tôi và sử dụng nhiều tính năng hơn của HĐH

Android do NDK cung cấp và như đã đề cập trước đó rằng việc phát triển RenderScript được thực hiện trong Bản địa Bộ phát triển của Android.

Tập lệnh Kernel được viết theo tiêu chuẩn C-99 của ngôn ngữ C. Tiêu chuẩn này là trước khi phát triển C ++. Tệp kịch bản kernel RenderScript thường được đặt trong tệp .rs .

Mỗi tập tin được gọi là một kịch bản. Một tập lệnh RenderScript Kernel có thể chứa các thành phần sau.

Không.Yếu tố & mô tả
1Một tuyên bố ngôn ngữ

Nó tuyên bố phiên bản của ngôn ngữ kernel RenderScript được sử dụng trong tập lệnh này.
2Một tờ khai gói
Khai báo này đặt tên gói của lớp Java sẽ bị ảnh hưởng bởi Mã hạt nhân này.
3Chức năng bất khả xâm phạm

Bạn có thể gọi các hàm bất khả xâm phạm này từ mã JAVA của mình bằng các đối số tùy ý.
4Script toàn cầu biến

Đây giống như các biến được định nghĩa trong ngôn ngữ lập trình C và C ++. Bạn có thể truy cập các biến này từ mã JAVA của bạn.
Sau đây là Mã mẫu của hạt nhân
uchar4 __convert__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
   uchar4 out = in;
   out.r = 255 - in.r;
   out.g = 255 - in.g;
   return out;
}

API RenderScript


Nếu bạn muốn sử dụng RenderScript trong API của mình, bạn có thể thực hiện theo hai cách sau

Không.API & Mô tả
1android.renderscript

API này khả dụng trên các thiết bị chạy Android 3.0 trở lên.
2android.support.v8.renderscript

API này khả dụng trên các thiết bị chạy Android 2.2 trở lên.
Để thư viện hỗ trợ Android cần có các công cụ sau

Phiên bản công cụ SDK Android mới nhất

Phiên bản công cụ xây dựng SDK Android mới nhất

Cách sử dụng Thư viện hỗ trợ RenderScript

Đầu tiên Mở tệp project.properIES trong dự án của bạn và thêm các dòng sau trong tệp
renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=18.1.0

Bây giờ hãy mở lớp chính của bạn, sử dụng RenderScript và thêm nhập cho các lớp Thư viện hỗ trợ như sau

import android.support.v8.renderscript.*;

Sau đây là các mục đích của các thuộc tính được đề cập ở trên mà chúng tôi thêm vào trong tệp project.properIES .

Không.Thuộc tính dự án & Mô tả
1tái hiện.target

Nó chỉ định phiên bản mã byte sẽ được tạo.
2tái hiện.support.mode

Nó chỉ định một phiên bản tương thích để mã byte được tạo trở lại.
3sdk.buildtools

Nó Chỉ định các phiên bản của công cụ xây dựng SDK Android để sử dụng.
Bây giờ hãy gọi các hàm RenderScript Kernel của bạn và tính toán các thuật toán phức tạp trong ứng dụng của bạn.

Thứ Ba, 19 tháng 3, 2019

Học lập trình Android - Android - Thông báo đẩy

Thông báo là thông báo bạn có thể hiển thị cho người dùng bên ngoài giao diện người dùng thông thường của ứng dụng. Bạn có thể tạo thông báo của riêng bạn trong Android rất dễ dàng.

Học lập trình Android chuyên nghiệp
Học lập trình Android chuyên nghiệp

>> Học lập trình Android cung cấp lớp NotificationManager cho mục đích này <<

Để sử dụng lớp này, bạn cần khởi tạo một đối tượng của lớp này bằng cách yêu cầu hệ thống Android thông qua phương thức getSystemService () . Cú pháp của nó được đưa ra dưới đây

NotificationManager NM;
NM=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 

Sau đó bạn sẽ tạo Thông báo thông qua lớp Thông báo và chỉ định các thuộc tính của nó như biểu tượng, tiêu đề và thời gian, vv Cú pháp của nó được đưa ra dưới đây
Notification notify = new Notification(android.R.drawable.stat_notify_more,title,System.currentTimeMillis());

Điều tiếp theo bạn cần làm là tạo PendingIntent bằng cách chuyển ngữ cảnh và ý định làm tham số.

Bằng cách cung cấp PendingIntent cho một ứng dụng khác, bạn đang trao cho nó quyền thực hiện thao tác bạn đã chỉ định như thể ứng dụng kia là chính bạn.

PendingIntent pending = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(),0);

Điều cuối cùng bạn cần làm là gọi phương thức setLatestEventInfo của lớp Thông báo và chuyển ý định đang chờ xử lý cùng với chủ đề thông báo và chi tiết cơ thể.

Cú pháp của nó được đưa ra dưới đây. Và cuối cùng gọi phương thức thông báo của lớp Thông báo.

notify.setLatestEventInfo(getApplicationContext(), subject, body,pending);NM.notify(0, notify);  

Ngoài phương thức thông báo, còn có các phương thức khác có sẵn trong lớp Thông báo. Chúng được liệt kê dưới đây
Không.Phương pháp & mô tả
1hủy (int id)

Phương pháp này hủy bỏ một thông báo hiển thị trước đó.
2hủy (thẻ String, int id)

Phương pháp này cũng hủy bỏ một thông báo hiển thị trước đó.
3hủy bỏ tất cả()
Phương pháp này hủy bỏ tất cả các thông báo được hiển thị trước đó.
4thông báo (int id, thông báo thông báo)
Phương pháp này đăng một thông báo sẽ được hiển thị trên thanh trạng thái.
5thông báo (Thẻ chuỗi, int id, Thông báo thông báo)

Phương pháp này cũng Đăng một thông báo sẽ được hiển thị trên thanh trạng thái.
Ví dụ dưới đây cho thấy việc sử dụng lớp NotificationManager. Nó tạo ra một ứng dụng cơ bản cho phép bạn tạo một thông báo.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế hoặc trong một trình giả lập.

Các bướcSự miêu tả
1Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói packagecom.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã Thông báo.
3Sửa đổi bố cục tệp XML res / layout / Activity_main.xml thêm bất kỳ thành phần GUI nào nếu cần.
4Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.
Đây là nội dung của MainActivity.java .

Trong đoạn mã sau abc chỉ ra logo của guidespoint.com

Đây là nội dung của Activity_main.xml

Đây là nội dung của AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>
Hãy thử chạy ứng dụng của chúng tôi. Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.

Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.

Bây giờ điền vào trường với tiêu đề, chủ đề và cơ thể. Điều này đã được hiển thị dưới đây trong hình

Bây giờ bấm vào nút thông báo và bạn sẽ thấy một thông báo trong thanh thông báo trên cùng. Nó đã được hiển thị dưới đây

Bây giờ cuộn xuống thanh thông báo và xem thông báo. Điều này đã được hiển thị dưới đây trong hình

Thứ Bảy, 16 tháng 3, 2019

Học lập trình Android - Thanh tiến trình Android sử dụng ProgressDialog

Thanh tiến trình được sử dụng để hiển thị tiến trình của một nhiệm vụ. Ví dụ: khi bạn đang tải lên hoặc tải xuống một cái gì đó từ internet, tốt hơn là hiển thị tiến trình tải xuống / tải lên cho người dùng.

Học lập trình Android chuyên sâu
Học lập trình Android chuyên sâu 

>> Trong Android có một lớp gọi là ProgressDialog cho phép bạn tạo thanh tiến trình. Để làm điều này, bạn cần khởi tạo một đối tượng của lớp này. Cú pháp của nó là Khóa học lập trình Android <<

ProgressDialog progress = new ProgressDialog(this);

Bây giờ bạn có thể thiết lập một số thuộc tính của hộp thoại này. Chẳng hạn như, phong cách của nó, văn bản của nó, vv
progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progress.setIndeterminate(true);
Ngoài các phương thức này, còn có các phương thức khác được cung cấp bởi lớp ProgressDialog

KhôngMô tả tiêu đề
1getMax ()
Phương pháp này trả về giá trị tối đa của tiến trình.
2gia tăng ProTHERBy (int diff)
Phương pháp này làm tăng thanh tiến trình bằng chênh lệch giá trị được truyền dưới dạng tham số.
3setIneterminate (boolean không xác định)

Phương pháp này đặt chỉ báo tiến trình là xác định hoặc không xác định.
4setMax (int max)
Phương pháp này đặt giá trị tối đa của hộp thoại tiến trình.
5setProTHER (int value)

Phương pháp này được sử dụng để cập nhật hộp thoại tiến trình với một số giá trị cụ thể.
6hiển thị (Bối cảnh bối cảnh, tiêu đề CharSequence, thông báo CharSequence)

Đây là một phương thức tĩnh, được sử dụng để hiển thị hộp thoại tiến trình.
Ví dụ này cho thấy việc sử dụng ngang của hộp thoại tiến trình trong thực tế là một thanh tiến trình. Nó hiển thị một thanh tiến trình khi nhấn nút.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế sau khi phát triển ứng dụng theo các bước dưới đây.

Các bướcSự miêu tả
1Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã tiến trình để hiển thị hộp thoại tiến trình.
3Sửa đổi tệp res / layout / Activity_main.xml để thêm mã XML tương ứng.
4Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / MainActivity.java.
package com.example.sairamkrishna.myapplication;

import android.app.ProgressDialog;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {
   Button b1;
   private ProgressDialog progress;
   
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      b1 = (Button) findViewById(R.id.button2);
   }
   
   public void download(View view){
      progress=new ProgressDialog(this);
      progress.setMessage("Downloading Music");
      progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
      progress.setIndeterminate(true);
      progress.setProgress(0);
      progress.show();
      
      final int totalProgressTime = 100;
      final Thread t = new Thread() {
         @Override
         public void run() {
            int jumpTime = 0;
            
            while(jumpTime < totalProgressTime) {
               try {
                  sleep(200);
                  jumpTime += 5;
                  progress.setProgress(jumpTime);
               } catch (InterruptedException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
               }
            }
         }
      };
      t.start();
   }
}
Sửa đổi nội dung của res / layout / Activity_main.xml thành như sau
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"
      android:text="Progress bar" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Download"
      android:onClick="download"
      android:id="@+id/button2"
      android:layout_marginLeft="125dp"
      android:layout_marginStart="125dp"
      android:layout_centerVertical="true" />
      
</RelativeLayout>
Đây là AndroidManifest.xml mặc định
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
   
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
   
   </application>
</manifest>

Hãy thử chạy ứng dụng của bạn. Chúng tôi giả sử, bạn đã kết nối thiết bị Android Mobile thực tế của mình với máy tính.

Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.

Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.

Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình sau

Chỉ cần nhấn nút để bắt đầu thanh Tiến trình. Sau khi nhấn, màn hình sau sẽ xuất hiện

Nó sẽ liên tục tự cập nhật.

Thứ Sáu, 15 tháng 3, 2019

Khóa học lập trình Android - Android - Vòng tròn tiến độ

Cách dễ nhất để tạo vòng tròn tiến trình là sử dụng thông qua một lớp có tên là ProgressDialog. Thanh tải cũng có thể được thực hiện thông qua lớp đó.

Sự khác biệt logic duy nhất giữa thanh và vòng tròn là, cái trước được sử dụng khi bạn biết tổng thời gian chờ đợi cho một nhiệm vụ cụ thể trong khi cái sau được sử dụng khi bạn không biết thời gian chờ.

Học lập trình Android chuyên nghiệp
Học lập trình Android chuyên nghiệp

>> Để làm điều này, bạn cần khởi tạo một đối tượng của lớp này. là học lập trình Android <<

ProgressDialog progress = new ProgressDialog(this);

Bây giờ bạn có thể thiết lập một số thuộc tính của hộp thoại này. Chẳng hạn như, phong cách của nó, văn bản của nó, vv

progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);

Ngoài các phương thức này, còn có các phương thức khác được cung cấp bởi lớp ProgressDialog.

Không.Lớp học & Mô tả
1getMax ()

Phương thức này trả về giá trị tối đa của tiến trình
2gia tăng ProTHERBy (int diff)

Phương pháp này làm tăng thanh tiến trình bằng chênh lệch giá trị được truyền dưới dạng tham số
3setIneterminate (boolean không xác định)
Phương pháp này đặt chỉ báo tiến trình là xác định hoặc không xác định
4setMax (int max)
Phương pháp này đặt giá trị tối đa của hộp thoại tiến trình
5setProTHER (int value)

Phương pháp này được sử dụng để cập nhật hộp thoại tiến trình với một số giá trị cụ thể
6hiển thị (Bối cảnh bối cảnh, tiêu đề CharSequence, thông báo CharSequence)

Đây là một phương thức tĩnh, được sử dụng để hiển thị hộp thoại tiến trình
Ví dụ này cho thấy việc sử dụng quay vòng của hộp thoại tiến trình. Nó hiển thị một hộp thoại tiến trình quay khi nhấn nút.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế sau khi phát triển ứng dụng theo các bước dưới đây.

Các bướcSự miêu tả
1Bạn sẽ sử dụng Android Studio để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã tiến trình để hiển thị hộp thoại tiến trình quay.
3Sửa đổi tệp res / layout / Activity_main.xml để thêm mã XML tương ứng.
4Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / MainActivity.java

Sửa đổi nội dung của res / layout / Activity_main.xml thành như sau

Trong đoạn mã sau abc chỉ ra logo của guidespoint.com

Sửa đổi res / value / string.xml thành như sau
<resources>
   <string name="app_name">My Application</string>
</resources>
Đây là AndroidManifest.xml mặc định
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
      
   </application>
</manifest>
Hãy thử chạy ứng dụng của bạn. Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Run từ thanh công cụ.

Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.

Chỉ cần nhấn nút để bắt đầu Hộp thoại Tiến trình. Sau khi nhấn, màn hình sau sẽ xuất hiện.

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...