編輯:關於Android編程
把apk放到/system/app文件夾下,作為系統項目,就可以保證項目有root的權http://限。
root權限的app可以申請很多一般用戶無法申請的權限。
參考:點擊打開鏈接
可以查看哪些權限是需要root才能申請的。
package com.example.netaccesstest; import java.io.DataOutputStream; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button open = (Button) findViewById(R.id.open); Button close = (Button) findViewById(R.id.close); open.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { CopyAppToSystem(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { RunAsRooter(); } }); } private void RunAsRooter() { try { Process process = Runtime.getRuntime().exec("su"); process.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } private void CopyAppToSystem() throws IOException { Process process = Runtime.getRuntime().exec("su"); DataOutputStream out = new DataOutputStream(process.getOutputStream()); out.writeBytes("mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system\n"); out.writeBytes("cat /sdcard/myApp.adk > /system/app/myApp.adk\n"); out.writeBytes("mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system\n"); out.writeBytes("exit\n"); out.flush(); try { process.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } } }
綜述 View的繪制流程可以分為三大步,它們分別是measure,layout和draw過程。measure表示View的測量過程,用於測量View的寬度和高度;lay
如圖,Android上新開的線程如想更新UI,需要重新跳到主線程中才能操作,以下是老外給出的幾種方案,大家多多學習下.private void loadIcon() {
在開發是經常會遇到獲取短信驗證碼,然後獲取驗證碼後需要等待1分鐘倒計時,這是是不能再次發送短信請求的,這是需要一個倒計時程序這裡我封裝了一個Util類,希望對開發的小伙伴
在Android中listview是最常用的控件之一,但是有時候我們會覺得千篇一律的listview看起來過於單調,於是就產生了listView動畫,listview加載