編輯:關於Android編程
Android系統下的apk程序都是通過名為PackageManagerService的包管理服務來管理的。PacketManagerService是安卓系統的一個重要服務,由SystemServer啟動,主要實現apk程序包的解析,安裝,更新,移動,卸載等服務。不管是系統apk(/system/app),還是我們手工安裝上去的,系統所有的apk都是由其管理的。
以android 4.0.4的源碼為例,android4.0.4/frameworks/base/services/java/com/android/server/SystemServer.java中的run()函數裡是SystemServer組件啟動所所有系統服務的實現流程,其中包括PackageManagerService。在該文件的112行定義了一個PackageManagerService類的一個對象。
IPackageManager pm = null; //定義了一個PackageManagerService類的一個對象
pm = PackageManagerService.main(context, factoryTest != SystemServer.FACTORY_TEST_OFF, onlyCore); //啟動PackageManagerService, 這個main函數的實現見當前目錄下pm/PackageManagerService.java的831行 boolean firstBoot = false; //判斷PackageManagerService是否是第一次啟動 try { firstBoot = pm.isFirstBoot(); } catch (RemoteException e) { } PackageManagerService.main()這個函數裡實現了PackageManagerService的啟動和注冊的過程,代碼如下: public static final IPackageManager main(Context context, boolean factoryTest, boolean onlyCore) { PackageManagerService m = new PackageManagerService(context, factoryTest, onlyCore); //在這裡構造了一個PackageManagerService的對象並啟動 ServiceManager.addService("package", m); //將PackageManagerService注冊到ServiceManager return m; }
計時器來計算每個運動員所消耗的時間等,而在Android系統之中,這種計時的功能就可以使用Chronometer組件,此類的繼承結構如下所示: 2java.lang.Ob
說到線程,我想大家都不陌生,因為在開發時候或多或少都會用到線程,而通常創建線程有兩種方式: 1、繼承Thread類 2、實現Runnable接口雖說這兩種方式都可以創建出
一、概述在自定義ViewGroup中,很多效果都包含用戶手指去拖動其內部的某個View(eg:側滑菜單等),針對具體的需要去寫好onInterceptTouchEvent
還是先來看看是不是你想要的效果:不廢話,直接上代碼,很簡單,代碼裡都有注釋1 單選public class SingleActivity extends AppCompa