Ⅰ 安卓哪些系統服務可以禁止可以刪除嗎
安卓手機或平板電腦的話,出廠的時間都會被廠商強制安裝很多的軟體,其中很多是你很少使用或根本不用的。但這些垃圾軟體都是被廠商鎖定的ROM內的。不能隨意刪除。
想刪除的話,第一步就是先把手機做一下ROOT,即強制獲取安卓系統的ROOT許可權,方法你可以去手機論壇,找到你手機對應(一定要對應,即手機的硬體和系統軟體版本都完全對應)的成功ROOT的帖子,一步步就可以搞定。
有了ROOT許可權後,你就可以隨意刪除手機上的軟體了,安卓系統本身都可以刪除(除非你不想用手機了)。只要你認為是沒用的軟體都可以刪,推薦你用 《安卓優化大師》,可以自動在你刪除系統自身軟體時幫你備份,後悔了可以再安裝上。
Ⅱ 《android系統服務開發》pdf下載在線閱讀,求百度網盤雲資源
《Android系統服務開發》([韓] 金大佑)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:Android系統服務開發
作者:[韓] 金大佑
譯者:邸春紅
出版社:人民郵電出版社
出版年份:2015-2
頁數:424
內容簡介:
•基於Jellybean(4.1.2)版本的Android系統服務
•線程間通信(Inter-Thread Communication)必備知識(Message、Message Queue、Looper、Handler等)
•針對進程間通信(Inter-Process Communication)的UNIX套接字使用方法
•守護進程程序結構
•面向移動通信網路的通信棧:RIL、通信框架、USIM
•Android的Power Management Service
作者簡介:
金大佑
西江大學電子工程學士及碩士學位。大學時期沉迷於Linux,並創建了Linux社團。曾參與LG電子Android項目,目前在瑞薩移動參與Android LTE手機項目。雖然熱衷於Android開發,但目前仍在使用非智能手機。主要關注領域是Android平台、SW設計以及ARM架構。希望有一天可以將創建開源項目作為個人愛好。
朴宰永
高麗大學無線電工程學士及碩士學位,進入LG電子後,至今一直從事手機開發業務。十餘年開發過程中,從與硬體相關的BSP業務到UI業務,乃至批量生產相關業務均有涉獵,積累了豐富經驗。比較關注的領域是無線通信、移動平台、ARM架構、USIM、電源管理。今後想通過授課對社會做出貢獻。
文炳元
曾在LG電子參與手機開發,目前在游戲公司負責數據分析。認為程序員的能力不僅在於了解豐富的知識,更在於能夠找到解決問題的方法。現在仍然不斷努力,希望每天都有新突破。
陳家林
Marvell高級研發經理,有7年多智能手機平台研發經驗,專注於Android系統平台,了解系統架構,熟悉多個子模塊。尤其在安全領域,知識體系涉及硬體、操作系統、框架層以及應用層,並多次在公開會議、論壇進行演講。興趣廣泛,愛好電影、籃球、檯球、創意和科技數碼產品等。
1. 在android/app/目錄下創建介面文件IServiceTest.aidl
package android.app;
oneway interface IServiceTest
{
void show();
}
2. 在Android.mk文件中的變數LOCAL_SRC_FILES中加入core/java/android/app/IServiceTest.aidl
如果要在sdk中發布這個服務就在變數aidl_files中加入一樣的路徑。
3. 通過aidl編譯器編譯IServiceTest.aidl,會生成一個IServiceTest.java文件。
4. 創建服務類ServiceTestSerice
class ServiceTestSerice extends IServiceTest.Stub{
private static final String TAG = 「ServiceTestSerice」;
Context mContext;
public ServiceTestSerice(Context context){
mContext = context;
}
public void show() throws RemoteException {
System.out.println(「My ServiceTestSerice」);
}
}
.5. 注冊服務
Java系統服務在ServerThread類的run()方法中生成並注冊到android平台,生成ServiceTestSerice實例對象,通過ServiceManager的addService方法將服務注冊到系統中。
try{
serviceTestSerice = new ServiceTestSerice(context);
ServiceManager.addService(Context.SERVICE_TEST, serviceTestSerice);
} catch (Throwable t) {
}
ServiceTestSerice serviceTestSerice;
以上代碼在ServerThread類的run()方法中。
在Context類中加入:
public static final StringSERVICE_TEST = 「servicetest」
ServiceTestManager sServiceTestManager;
6. 使用系統服務
編寫一個ServiceTestManager類,為包裝類。
public class ServiceTestManager{
private final IServiceTest mService;
ServiceTestManager(IServiceTest service){
mService = service;
}
public void test(){
try{
mService. show()
} catch (RemoteException ex){
}
}
}
7 提供應用層開發介面
在ContextImpl類中的getSystemService()方法中加入如下代碼:
else if (SERVICE_TEST.equals(name)){
return getServiceTestManager();
}
private ServiceTestManager getServiceTestManager(){
synchronized(sSync) {
if (sServiceTestManager == null){
IBinder b = ServiceManager.getService(SERVICE_TEST);
IServiceTest service = IServiceTest.Stub.asInterface(b);
sServiceTestManager = new ServiceTestManager(service);
}
}
調用過程如下:
ServiceTestManager manager= (ServiceTestManager) getSystemService(Context. SERVICE_TEST);
manager.show();
8. 測試
make
make update-api 更新current.xml文件
生成system.imz文件,放到<ANDROID_SDK>/platform/android-20/images/目錄下,
adb shell
service list
Ⅳ 如何在Android中添加系統服務
這里說的系統服務,是指捆綁在system_process進程中的服務。仔細閱讀源碼可以發現,在frameworks/base/services/java/com/android/server/SystemServer.java中添加了很多服務,什麼熵信息、電量、wife等等服務,這些服務啟動都在launcher之前,一般要繼承Binder或者繼承一個AIDL。下面試著來添加一個簡單系統服務。
一、在frameworks/base/core/java/android/os/ 增加一個aidl文件,最後用aidl工具生產一個Java文件,這樣可以方便後面:然後在修改/frameworks/base/Android.mk,在LOCAL_SRC_FILES里添加一行:core/java/android/os/IYtTtsService.aidl \不確定補充:把AIDL文件寫在這個地方似乎可以避免加@hide
二 、在frameworks/base/services/java/com/android/server/ 新建要增加的service,繼承上面aidl生產的java
三、在frameworks/base/services/java/com/android/server/SystemServer.java, ServerThread中run()方法中增加代碼
四、在ContextImpl getSystemService中添加代碼
五、測試代碼
Ⅳ 請問android系統中的進程,任務,服務三者的區別和聯系
進程是總稱,包括第三方應用和系統應用以及系統底層模塊。任務是你安裝的第三方應用進程。而服務是系統模塊進程。
Ⅵ 華為手機Android系統服務MainService是什麼意思
遠程服務 Remote Service 用於android系統內部的應用程序之間
它可以通過自己定義並暴露出來的介面進行程序操作。客戶端建立一個到服務對象的連接,並通過那個連接來調用服務。連接以調用Context.bindService()方法建立,以調用 Context.unbindService()關閉。多個客戶端可以綁定至同一個服務。如果服務此時還沒有載入,bindService()會先載入它。
Ⅶ 手機後台一直有一個android system service的東西怎樣關閉
屬於惡意程序,會自動靜默下載安裝多款應用,很難清除,刪除之後過段時間還會自動安裝。
Ⅷ 安卓系統服務是什麼
是安卓的核心服務,缺少將無法運行安卓系統
Ⅸ 如何在android系統中開啟自己的服務
Android開機啟動Service,需要使用BroadcastReceiver,Android系統,開機會發送一個開機廣播,可以通過BroadcastReceiver來接收開機廣播。
具體代碼:
1.在配置文件AndroidManifest.xml中向系統注冊receiver
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
2.需要添加相應許可權
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3.在Receiver中就可以添加開機需要進行的操作
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
4.執行開機後的操作,Intent intent = new Intent(context,Service.class); context.startService(intent); 這樣即可開機啟動Service了。
Ⅹ Android怎麼打開/關閉系統解鎖服務
轉載 Android如何打開/關閉系統解鎖服務?—典型錯誤分析
最近正在做一個Android的解鎖應用,需要屏蔽系統解鎖,並在適當的時候打開系統解鎖,在網上search了很多有關系統解鎖的資料,學到了很多關於系統解鎖方面的知識,同時也發現了很多網友犯下的一個共同的錯誤。現分享一下:
錯誤一:
總所周知,要關閉系統自帶的鎖屏服務需要用到以下代碼:
mKeyguard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
mKeylock = mKeyguard.newKeyguardLock("");
mKeylock.disableKeyguard();
要打開系統鎖屏服務需要以下代碼:
mKeylock.reenableKeyguard()
網上很多朋友對disableKeyguard()的理解為:將屏幕打開並解鎖,只要執行這個方法就會是屏幕變亮並自動解鎖!同樣reenableKeyguard()的作用是關閉屏幕並上鎖!
大錯而特錯了!
我們來看看google api對這兩個方法的解釋:
disableKeyguard: Disable the keyguard from showing. If the keyguard is currently showing, hide it. The keyguard will be prevented from showing again untilreenableKeyguard() is called.
reenableKeyguard: Reenable the keyguard. The keyguard will reappear if the previous call todisableKeyguard() caused it it to be hidden.
所以,disableKeyguard只是關閉系統鎖屏服務,調用該方法後並不會立即解鎖,而是使之不顯示解鎖,同樣reenableKeyguard是恢復鎖屏服務,並不會立即鎖屏!
錯誤二:
下面是通過兩個按鈕來模擬打開/關閉系統鎖屏的代碼:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ km.newKeyguardLock(TAG).disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){public void onClick(View arg0) { /* 打開系統鎖屏服務 */ km.newKeyguardLock(TAG).reenableKeyguard(); } }); } }
這段代碼看起來很完美,但是執行之後會發現:只能關閉鎖屏服務,無法恢復鎖屏服務!
是什麼原因呢?
原來是在調用disableKeyguard和reenableKeyguard的時候必須使用同一個KeyguardLock對象!
程序略加修改:
package com.example.keyguard; import android.os.Bundle; import android.app.Activity; import android.app.KeyguardManager; import android.app.KeyguardManager.KeyguardLock; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.support.v4.app.NavUtils; /** * @author Onejune * @function 打開/關閉系統鎖屏服務測試 * @note 在打開/關閉系統鎖屏服務時必須使用同一個KeyguardLock對象,否則出錯 */ public class KeyGuardActivity extends Activity { private Button myButtonOn, myButtonOff; private KeyguardManager km; private KeyguardLock kl; private final String TAG = "KeyGuardTest"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_key_guard); /* 獲取KeyGuardManager對象 */ km = (KeyguardManager)this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); /* 獲取KeyguardLock對象 */ kl = km.newKeyguardLock(TAG); myButtonOff = (Button)findViewById(R.id.buttonOff); myButtonOff.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 關閉系統鎖屏服務 */ kl.disableKeyguard(); } }); myButtonOn = (Button)findViewById(R.id.buttonOn); myButtonOn.setOnClickListener(new Button.OnClickListener(){ public void onClick(View arg0) { /* 打開系統鎖屏服務 */ kl.reenableKeyguard(); } }); } }
終於OK!