Thứ Sáu, 31 tháng 8, 2018

Android - Các phương pháp hay nhất

Có một số thực hành mà bạn có thể làm theo trong khi phát triển ứng dụng Lập trình Android. Đây là những đề xuất của bản thân Android và họ tiếp tục cải thiện đối với thời gian.

Các phương pháp hay nhất này bao gồm các tính năng thiết kế tương tác, hiệu suất, bảo mật và quyền riêng tư, khả năng tương thích, thử nghiệm, phân phối và mẹo kiếm tiền. Chúng được thu hẹp lại và được liệt kê dưới đây.

Thực tiễn tốt nhất - Nhập của người dùng

Mỗi trường văn bản được dành cho một công việc khác. Ví dụ: một số trường văn bản dành cho văn bản và một số dành cho số. Nếu nó dành cho các con số thì tốt hơn là hiển thị bàn phím số khi trường văn bản đó được tập trung. Cú pháp của nó là.
<EditText
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/editText"
   android:layout_alignParentRight="true"
   android:layout_alignParentEnd="true"
   android:hint="User Name"
   android:layout_below="@+id/imageView"
   android:layout_alignLeft="@+id/imageView"
   android:layout_alignStart="@+id/imageView"
   android:numeric="integer" />
Khác sau đó nếu lĩnh vực của bạn là cho mật khẩu, sau đó nó phải hiển thị một gợi ý mật khẩu, để người dùng có thể dễ dàng nhớ mật khẩu. Nó có thể đạt được như.
<EditText
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:id="@+id/editText2"
   android:layout_alignLeft="@+id/editText"
   android:layout_alignStart="@+id/editText"
   android:hint="Pass Word"
   android:layout_below="@+id/editText"
   android:layout_alignRight="@+id/editText"
   android:layout_alignEnd="@+id/editText"
   android:password="true" />

Thực tiễn tốt nhất - Công việc nền

Có một số công việc nhất định trong một ứng dụng đang chạy trong nền ứng dụng. Công việc của họ có thể là lấy một số thứ từ internet, chơi nhạc vv Chúng tôi đề nghị rằng các tác vụ chờ đợi lâu không nên được thực hiện trong chuỗi giao diện người dùng và thay vì trong nền bởi dịch vụ hoặc AsyncTask.

Dịch vụ AsyncTask Vs.

Cả hai đều được sử dụng để thực hiện các tác vụ nền, nhưng dịch vụ không bị ảnh hưởng bởi hầu hết các sự kiện trong vòng đời của giao diện người dùng, do đó nó tiếp tục chạy trong các trường hợp sẽ tắt AsyncTask.

Thực tiễn tốt nhất - Hiệu suất

Hiệu suất ứng dụng của bạn phải được cập nhật. Nhưng nó sẽ thực hiện khác nhau không phải trên giao diện người dùng, nhưng ở mặt sau khi thiết bị được kết nối với nguồn điện hoặc sạc. Sạc có thể từ USB và từ dây cáp.

Khi thiết bị của bạn đang tự sạc, bạn nên cập nhật cài đặt ứng dụng của mình nếu có, chẳng hạn như tối đa hóa tốc độ làm mới của bạn bất cứ khi nào thiết bị được kết nối. Nó có thể được thực hiện như thế này.
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

// Are we charging / charged? Full or charging.
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);

// How are we charging? From AC or USB.
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);

Thực tiễn tốt nhất - Bảo mật và quyền riêng tư

Điều rất quan trọng là ứng dụng của bạn phải được bảo mật và không chỉ ứng dụng, mà còn dữ liệu người dùng và dữ liệu ứng dụng cũng phải được bảo mật. Bảo mật có thể được tăng lên bởi các yếu tố sau.

Sử dụng bộ nhớ trong thay vì bên ngoài để lưu trữ tệp ứng dụng

Sử dụng nhà cung cấp nội dung bất cứ khi nào có

Sử dụng SSl khi kết nối với web

Sử dụng các quyền thích hợp để truy cập các chức năng khác nhau của thiết bị

Thí dụ

Ví dụ dưới đây minh họa một số phương pháp hay nhất bạn nên làm theo khi phát triển ứng dụng Android. Nó thùng một ứng dụng cơ bản cho phép bạn chỉ định cách sử dụng các trường văn bản và cách tăng hiệu suất bằng cách kiểm tra trạng thái sạc của điện thoại.

Để thử nghiệm với ví dụ này, bạn cần chạy trên một thiết bị thực tế.

Các bướcSự miêu tả
1Bạn sẽ sử dụng Android studio IDE để tạo ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã
3Sửa đổi tệp XML bố trí 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 src / MainActivity.java
package com.example.sairamkrishna.myapplication;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {
   EditText ed1,ed2;
   Button b1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         
         public void onClick(View v) {
            IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
            Intent batteryStatus = registerReceiver(null, ifilter);

            int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
            boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
            status == BatteryManager.BATTERY_STATUS_FULL;

            int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,-1);
            boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
            boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;

            if(usbCharge){
               Toast.makeText(getApplicationContext(),"Mobile is charging on USB",
                  Toast.LENGTH_LONG).show();
            } else {
               Toast.makeText(getApplicationContext(),"Mobile is charging on AC",
                  Toast.LENGTH_LONG).show();
            }
         }
      });
   }

   @Override
   protected void onDestroy() {
      super.onDestroy();
   }
}
Đây là nội dung của activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
   <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:text="Bluetooth Example" 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="User Name"
      android:layout_below="@+id/imageView"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView"
      android:numeric="integer" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_alignLeft="@+id/editText"
      android:layout_alignStart="@+id/editText"
      android:hint="Pass Word"
      android:layout_below="@+id/editText"
      android:layout_alignRight="@+id/editText"
      android:layout_alignEnd="@+id/editText"
      android:password="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Check"
      android:id="@+id/button"
      android:layout_below="@+id/editText2"
      android:layout_centerHorizontal="true" />
      
</RelativeLayout>
Đây là nội dung của Strings.xml
<resources>
    <string name="app_name">My Application</string>
</resources>
Đâ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="@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. Tôi cho rằng bạn đã kết nối thiết bị Android Mobile thực tế với máy tính của mình.

Để chạy ứng dụng từ Android studio, 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 Chạy biểu tượng từ thanh công cụ. Android Studio sẽ hiển thị Hình ảnh sau.

Học lập trình Android

Ảnh trên cho thấy đầu ra của ứng dụng

Học lập trình Android

Bây giờ chỉ cần gõ vào lĩnh vực tên người dùng và bạn sẽ thấy được xây dựng trong các đề xuất android từ từ điển sẽ bắt đầu sắp tới. Điều này được hiển thị ở trên.

học android
Học lập trình Android

Bây giờ bạn sẽ thấy trường mật khẩu. Nó sẽ biến mất ngay sau khi bạn bắt đầu viết trong lĩnh vực này. Nó được hiển thị ở trên.

Cuối cùng, chỉ cần kết nối thiết bị của bạn với cáp AC hoặc cáp USB và nhấn vào nút kiểm tra sạc. Trong trường hợp của tôi, tôi kết nối nguồn AC, nó hiển thị thông báo sau.

Học lập trình Android

Android - Tự động hoàn thành

Học lập trình Android nếu bạn muốn nhận đề xuất, khi bạn nhập vào trường văn bản có thể chỉnh sửa, bạn có thể thực hiện việc này qua AutoCompleteTextView.

Nó cung cấp đề xuất tự động khi người dùng đang gõ. Danh sách các đề xuất được hiển thị trong trình đơn thả xuống mà từ đó người dùng có thể chọn một mục để thay thế nội dung của hộp chỉnh sửa bằng.

Để sử dụng AutoCompleteTextView, trước tiên bạn phải tạo một trường AutoCompletTextView trong xml. Cú pháp của nó được đưa ra dưới đây.
<AutoCompleteTextView
   android:id="@+id/autoCompleteTextView1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentTop="true"
   android:layout_centerHorizontal="true"
   android:layout_marginTop="65dp"
   android:ems="10" >
Sau đó, bạn phải có được một tài liệu tham khảo của textview này trong java. Cú pháp của nó được đưa ra dưới đây.
private AutoCompleteTextView actv;
actv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); 
Điều tiếp theo bạn cần làm là chỉ định danh sách các mục đề xuất sẽ được hiển thị. Bạn có thể chỉ định các mục danh sách dưới dạng mảng chuỗi trong java hoặc trong strings.xml. Cú pháp của nó được đưa ra dưới đây.
String[] countries = getResources().getStringArray(R.array.list_of_countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>
   (this,android.R.layout.simple_list_item_1,countries);
actv.setAdapter(adapter);
Lớp bộ điều hợp mảng có trách nhiệm hiển thị dữ liệu dưới dạng danh sách trong hộp đề xuất của trường văn bản.

Các setAdapter phương pháp được sử dụng để thiết lập các bộ chuyển đổi của autoCompleteTextView. Ngoài các phương pháp này, các phương pháp khác của Tự động hoàn thành được liệt kê bên dưới.

Sr.NoPhương pháp & mô tả
1getAdapter ()

Phương thức này trả về một bộ điều hợp danh sách có thể lọc được sử dụng để hoàn thành tự động
2getCompletionHint ()

Phương thức này trả về văn bản gợi ý tùy chọn được hiển thị ở cuối danh sách khớp
3getDropDownAnchor ()

Phương thức trả về này trả về id cho khung nhìn mà danh sách thả xuống tự động hoàn thành được neo vào.
4getListSelection ()

Phương thức này trả về vị trí của lựa chọn dạng xem thả xuống, nếu có một
5isPopupShowing ()

Phương thức này cho biết menu popup có đang hiển thị hay không
6setText (văn bản CharSequence, bộ lọc boolean)

Phương thức này đặt văn bản trừ khi nó có thể vô hiệu hóa tính năng lọc
7showDropDown ()

Phương thức này hiển thị thả xuống trên màn hình.
Thí dụ
Ví dụ dưới đây minh họa việc sử dụng lớp AutoCompleteTextView. Nó thùng một ứng dụng cơ bản cho phép bạn nhập vào và nó hiển thị các đề xuất trên thiết bị của bạn.

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

Các bướcSự miêu tả
1Bạn sẽ sử dụng Android Studio để tạo ứng dụng Android theo gói package com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã AutoCompleteTextView
3Sửa đổi tệp XML bố trí 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 src / MainActivity.java
package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.content.Context;

import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaRecorder;

import android.os.Bundle;
import android.os.Environment;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;

import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Toast;
import java.io.IOException;


public class MainActivity extends Activity {
   AutoCompleteTextView text;
   MultiAutoCompleteTextView text1;
   String[] languages={"Android ","java","IOS","SQL","JDBC","Web services"};
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      text=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
      text1=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
      
      ArrayAdapter adapter = new 
         ArrayAdapter(this,android.R.layout.simple_list_item_1,languages);
      
      text.setAdapter(adapter);
      text.setThreshold(1);
      
      text1.setAdapter(adapter);
      text1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
   }
}

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

Ở đây abc cho biết về logo của hướng dẫn
<xml version="1.0" encoding="utf-8"?>
<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:text="Android Auto Complete"
      android:id="@+id/textView"
      android:textSize="30dp"
      android:layout_alignParentTop="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorialspoint"
      android:id="@+id/textView2"
      android:textColor="#ff3eff0f"
      android:textSize="35dp"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/logo"
      android:layout_below="@+id/textView2"
      android:layout_alignLeft="@+id/textView2"
      android:layout_alignStart="@+id/textView2"
      android:layout_alignRight="@+id/textView2"
      android:layout_alignEnd="@+id/textView2" />
      
   <AutoCompleteTextView
      android:id="@+id/autoCompleteTextView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:ems="10"
      android:layout_below="@+id/imageView"
      android:layout_alignLeft="@+id/imageView"
      android:layout_alignStart="@+id/imageView"
      android:layout_marginTop="72dp"
      android:hint="AutoComplete TextView">
      <requestFocus />
   </AutoCompleteTextView>
   
   <MultiAutoCompleteTextView
      android:id="@+id/multiAutoCompleteTextView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:ems="10"
      android:layout_below="@+id/autoCompleteTextView1"
      android:layout_alignLeft="@+id/autoCompleteTextView1"
      android:layout_alignStart="@+id/autoCompleteTextView1"
      android:hint="Multi Auto Complete " />
      
</RelativeLayout>
Đây là nội dung của Strings.xml
<resources>
   <string name="app_name">My Application</string>
</resources>
Đâ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="@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. Tôi cho rằng bạn đã kết nối AVD của bạn trong khi thiết lập môi trường.

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

Android studio sẽ cài đặt ứng dụng này trong AVD của bạn và AVD của bạn sẽ hiển thị màn hình sau đây.

Học lập trình Android

Bây giờ, chỉ cần nhập vào chế độ xem văn bản để xem các đề xuất của Ngôn ngữ. Khi tôi chỉ cần gõ một chữ cái như là một , và nó cho thấy tôi gợi ý về ngôn ngữ.

học lập trình Android

Multi Auto Complete TextView thể hiện các đề xuất cho không chỉ một từ mà còn cho toàn bộ văn bản. Như sau khi viết từ đầu tiên, khi tôi bắt đầu viết từ thứ hai, nó sẽ hiển thị cho tôi những gợi ý. Điều này có thể được hiển thị trong hình dưới đây.

học lập trình Android

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 ...