導航:首頁 > 定製細節 > 怎麼做定製安卓系統

怎麼做定製安卓系統

發布時間:2021-02-16 20:12:03

A. 怎麼自己做一個基於Android的深度定製Rom呢比如小米的MIUI,魅族的Flyme我需要掌

您好,
這個可不是個小項目,魅族和小米的設計團隊都是很龐大的,具體的工作崗位有回UI視覺設計。UI交互設答計。UI動態設計。Java工程師,還有各種軟體工程師等等。。。。這么一大堆設計,你怎麼搞得了。你感興趣了,撿著一個學習就行,然後自己找一下相關課程。
希望能幫助到你~

B. 如何定製自己的android操作系統

首先你要會android語言,
如果你要修改的話,你需要源碼文件,根據你自己的需求,修改系統,然後燒錄到手機裡面
希望能採納我,謝謝

C. 我想做一個基於安卓的系統,像錘子OS,深度定製ROM。怎麼做!需要從電腦上怎麼完成我並不是想要刷

製作rom需要修改安卓源代碼,不是一般人能夠完成的,而且製作出來還需要刷到手機中查找bug!很麻煩,一個好rom,不僅製作時間多,而且測試時間更多

D. android系統定製開發該怎麼上手

就索性進行了一番調研,於是有了本文(本次不討論越獄的iOS) 首先從情感上,你喜歡哪個就好,就像百事可樂和可口可樂,當然這個比喻不是很恰當,因為可樂喝起來幾乎一樣,但是Android和iOS還是有很大差別的。 iOS來源於Apple的OSX,是UNIX系統,OSX已經有差不多10年的歷史,從內核底層到軟體架構都是逐步發展過來的。iOS使用ObjectivC這個古老的語言來做開發。而Android是Google基於Linux搞來的,嚴格意義上講Android並不是一個Linux系統,它沒有Linux的xwin,沒有glibc,缺乏一整套標準的Linux程序。Android應用絕大部分都是使用JAVA開發,跑在Dalvik虛擬機上(一小部分使用NDK)。 Google在底層也修改了很多東西。Android算是一個全新的操作系統。 所以: Android使用JAVA,上手容易很多,如果有很好的JAVA Lib加持,開發效率會高些 iOS沒有虛擬機, 也沒有GC,性能要好一些,當然這個差別會隨著Google的改進越來越小 iOS的開發框架很成熟,而且和MAC上通用,同樣的知識體系,也可以開發MAC應用,Android相比是全新的框架, 還會繼續進化。 iOS和設備緊密集成。軟硬體一家公司通吃。但是Android無法做到, 通常的情況是:Google放出源代碼。 晶元廠商需要1-3個月來做自己的晶元方案, 手機廠商從晶元廠商處買到方案和代碼, 進行自己的集成,定製工作,有時候還需要針對運營商進行定製。 所以: iOS的設備集成度和驅動優化都是最好的。電源管理一塊就可見一斑,而Android廠商就魚龍混雜。可能排頭的廠商的旗艦機器會好些,但是由於Android工期一般都比iOS設備短(請看HTC和三星出機器的速度),所以整體上和iOS比是有差距的。 由於有多家廠商自己做定製,Android還存在設備的分裂問題(fragmentation), 作為過來人,我告訴你這個是很頭痛的事情, 且不論調試時間和人力, 光買一大堆設備的成本就不小。最關鍵的是它會傷美工/UE的心。 iOS是被Apple嚴格控制的系統。 在大部分情況下, 第三方應用是無法拿到所有API的。 這意味系統級別的很多功能只有Apple能做(比如打電話,攔截簡訊)。此外一些涉及用戶隱私的API還會導致系統彈出對話框詢問用戶。 同樣第三方runtime做應用開發也是基本不可行的(Flash當初也是被這個條款拒過)。 反過來Android完全不一樣,首先Android是開源的,在設計上Android就允許自由替換系統組件, Android也沒有強制限制API的情況,(hidden API也可以call,沒有人會找你麻煩)。 系統級別的許可權是下放到廠商手中,如果廠商願意給,那第三方開發者就可以做任何事情。 普通應用的許可權認證也是在安裝的時候就一次性授權完成。 之後不會騷擾用戶。所以: Android平台可以做的事情遠遠比iOS多, 你可以做電話管理,地址簿,簡訊管理,可以自己跑後台service。 替換掉系統的組件非常容易 Android平台也可以跑其他系統的Runtime, 比如Flash, 有了NDK, 你要自己接入一個虛擬機也是可能的。Google不會管你 任何人可以拿Android自己改個獨立的系統出來,也許這樣做的意義和前景有問題,但是同樣,沒有人限制你 iOS上唯一的下載應用途徑就是Appstore,開發者做應用上線還要通過Apple審核,就算通過了,如果掛羊頭賣狗肉亂來或者調用了不該用的API, Apple一樣隨時可以下架。管理非常嚴格。反過來Android上非常鬆懈: 廠商可以內置應用。經常會扔一些莫名其妙的軟體預裝在手機上, 筆者在廠商的時候深刻體會到亂選軟體是很好玩的事情。而且我們不會讓你刪除掉的。 Google的官方菜市場不做應用審核,開發者上傳軟體很隨意,這是個自由市場。 國內還存在大量第三方軟體菜市場。以及豌豆夾類似的PC端管理軟體。 如果用戶選擇允許未知來源,那麼通過web下載或者安裝卡上的軟體也是可以的。似乎國內用戶都是允許的。所以: iOS上的精品軟體多,競爭激烈但管理有序,開發者也容易掙錢。 Android上雖然也有精品軟體,但是垃圾軟體更多, 甚至有惡意軟體。 因為無門檻,基本上軟體都是免費,賣不起錢, 大部分都靠廣告。 Android還有一堆殺毒軟體,這是典型的沒有困難,製造困難也要上的精神。 Android上還有一堆安慰劑軟體,比如能幫你省電的或者是幫你殺後台進程的來提升性能的, 筆者作為做過底層開發的人,笑而不語。 如果你是普通用戶,請關貼, 本文不是用來給普通用戶選機的。 如果你是一個個人軟體開發者, iOS適合你, 市場規范, 做應用省心。 如果你是一個軟體和服務的創業公司, iOS也是適合你做demo的和第一個產品的, 產品靠譜了,用戶在用了,有人給錢了,再往Android走也是可行的。 除非你做的應用要涉及硬體或者需要非常高的系統許可權, 如果是那樣你也只有選擇Android。因為國內的廠商肯定要比蘋果要容易談下來。 如果你是一個要做硬體和系統定製的公司, 那麼基本上你只有Android可以選。Android的解決方案的成本也在不斷下降。 如果你是一個有中國特色的公司,想搞點移動業務玩玩, 還要瞞著用戶做很多事情。 那麼Android也是更好的, 就算你不作惡, 控制權在自己手中也會方便運作一點。所經如何選擇,不用我多講,這兩個都是當今移動互聯網開發的方向,但是一個開源學習起來更容易,做東西更快,有絕對的控制權。一個不開源,只能做上層應用,但也可活的很好,就是這樣。

E. 怎麼製作安卓定製ui

launcher是安卓系統中的桌面啟動器,安卓系統的桌面UI統稱為...不過有的需要做定製的Android系統,比如有的商家做的是放在汽車上的平板,

F. 什麼手機的安卓系統可以自己定製

除非自己做ROM,定製。。。。

G. 我想定製一套安卓系統,需要准備什麼,因為是剛接觸這個方面了解的不是很多,還有很多問題,還請大神指導

對於剛開始接觸ANDROID手機或者是准備接觸ANDROID手機的人來說,如何上手肯定是一個不回小的難題,尤其是面答對琳琅滿目的應用程序(簡稱APP),尤其是它們中有些的功能是重復的時,我們應該如何抉擇?
今天我就來給廣大的充滿好奇心和行動力的學生朋友們來推薦一些比較實用的APP。當然,受眾面絕不僅限於學生,其他諸方人士也可以在其中找一找哪些是適合自己的,也未嘗不可。
開始介紹之前呢,我先說一下,我把APP分為5類,分別是:
【基礎】:實現手機多項基礎功能的優化,受眾面廣,對大多數人都有用的。
【網路】:顧名思義,主要功能都要通過聯網來實現的。
【工具】;對日常活動能夠起到幫助的非娛樂性質APP。
【游戲】:ANDROID上的游戲比起IOS上的來實在寥寥,得不到游戲大廠的重視也使得其缺少重量級作品,不過游戲作為學生生活的一部分,怎麼少得了呢?
【趣味】;並非游戲但也能在閑暇時打發時間的。
基礎篇
首先我們在ANDROID手機的一切活動都是基於ANDROID系統之上的,優化系統我推薦這兩個APP:
《360安全衛士》:可以提供進程監管、手機殺毒、來電地址查詢,簡訊防火牆,流量監控等使用功能。

H. 怎麼自己深度定製安卓系統

既然你問出這么個問題,就類似怎麼自己造一台喜歡的汽車一樣,你根本不了解背後的技術和要花費的精力。
你可以用刷機精靈,rom之家等地方找喜歡的rom刷入,但是你的手機是oppo,還是不要抱什麼希望了

I. 如何自己定製安卓系統

ROM 是 ROM image(只讀內存鏡像)的簡稱,也稱刷機包,目前只有iOS和安卓幾個大戶敢自稱專ROM,其它的都叫××UI。如果只是想屬要定製一下個性化的桌面主題,可以試試第三方的桌面APP,或者刷當前機型已經適配的刷機包。如果想要的是ROM,很抱歉,整個中國的安卓都是基於谷歌家的,一些企業牽頭做起來的ROM,如麒麟OS等等都沒活過一個月,華為小米這些不管把UI優化的再好用,再好看,ROM也是谷歌授權。定製UI的話,除了幾個大型手機廠商會適配第三方手機,剩下的個人做的UI基本都廢了,你就看看什麼桌面APP好看,用用也就得了,不賺錢的事情很少有人做,要麼做不起來,真要想深層定製,還是自己學學這方面的東西吧

J. 如何定製 android 主界面

果你要定製一個Android系統,你想用你自己的Launcher(Home)作主界面來替換Android自己的Home,而且不希望用戶安裝的Launcher來替換掉你的Launcher.
我們可以通過修改Framework來實現這樣的功能。

這里以Android2.1的源代碼為例來實際說明。

1)首先了解一下Android的啟動過程。
Android系統的啟動先從Zygote開始啟動,然後......(中間的過程就不說了).....一直到了SystemServer(framework)這個地方,看到這段代碼:

/**
* This method is called from Zygote to initialize the system. This will cause the native
* services (SurfaceFlinger, AudioFlinger, etc..) to be started. After that it will call back
* up into init2() to start the Android services.
*/
native public static void init1(String[] args);

public static void main(String[] args) {
if (SamplingProfilerIntegration.isEnabled()) {
SamplingProfilerIntegration.start();
timer = new Timer();
timer.schele(new TimerTask() {
@Override
public void run() {
SamplingProfilerIntegration.writeSnapshot("system_server");
}
}, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL);
}

// The system server has to run all of the time, so it needs to be
// as efficient as possible with its memory usage.
VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);

System.loadLibrary("android_servers");
init1(args);
}

public static final void init2() {
Log.i(TAG, "Entered the Android system server!");
Thread thr = new ServerThread();
thr.setName("android.server.ServerThread");
thr.start();
}
}

從SystemServer的main函數開始啟動各種服務。
首先啟動init1,然後啟動init2.
從上面的注釋可以看到:init1這個方法時被Zygote調用來初始化系統的,init1會啟動native的服務如SurfaceFlinger,AudioFlinger等等,這些工作做完以後會回調init2來啟動Android的service。

這里我們主要來關注init2的過程。
init2中啟動ServerThread線程,
ServerThread中啟動了一系列的服務,比如這些:

ActivityManagerService
EntropyService
PowerManagerService
TelephonyRegistry
PackageManagerService
AccountManagerService
BatteryService
HardwareService
Watchdog
SensorService
BluetoothService
StatusBarService
ClipboardService
InputMethodManagerService
NetStatService
ConnectivityService
AccessibilityManagerService
NotificationManagerService
MountService
DeviceStorageMonitorService
LocationManagerService
SearchManagerService
FallbackCheckinService
WallpaperManagerService
AudioService
BackupManagerService
AppWidgetService

這些大大小小的服務起來以後,開始
((ActivityManagerService)ActivityManagerNative.getDefault()).systemReady()
在systemReady後開始開始啟動Launcher。

在尋找Launcher的時候是根據HOME的filter(在Manifest中定義的<category android:name="android.intent.category.HOME" />)來過濾。
然後根據filter出來的HOME來啟動,如果只有一個HOME,則啟動這個HOME,如果用戶自己裝了HOME,那就會彈出來一個列表供用戶選擇。

我們現在希望從這里彈出我們自己定製的Launcher,同時也不希望彈出選擇HOME的界面,我們不希望用戶修改我們的home,比如我們的home上放了好多廣告,以及強制安裝的程序,不希望用戶把它幹掉。

我們可以通過這樣來實現:

2) 定義一個私有的filter選項,然後用這個選項來過濾HOME.
一般情況下我們使用Manifest中定義的<category android:name="android.intent.category.HOME"來過濾的,我們現在增加一個私有的HOME_FIRST過濾。

在Intent.java(frameworks/base/core/java/android/content/Intent.java)中添加兩行代碼

//lixinso:添加CATEGORY_HOME_FIRST
@SdkConstant(SdkConstantType.INTENT_CATEGORY)
public static final String CATEGORY_HOME_FIRST = "android.intent.category.HOME_FIRST";

3)修改和CATEGORY_HOME相關的所有的地方,都改成HOME_FIRST,主要是framework中的這幾個地方:

frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中
//intent.addCategory(Intent.CATEGORY_HOME);
改成intent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso:
//if (r.intent.hasCategory(Intent.CATEGORY_HOME)) {
改成if (r.intent.hasCategory(Intent.CATEGORY_HOME_FIRST)) { //lixinso: Intent.CATEGORY_HOME -> Intent.CATEGORY_HOME_FIRST

frameworks/base/services/java/com/android/server/am/HistoryRecorder.java中
// _intent.hasCategory(Intent.CATEGORY_HOME) &&
改成 _intent.hasCategory(Intent.CATEGORY_HOME_FIRST) && //lixinso: Intent.CATEGORY_HOME->Intent.CATEGORY_HOME_FIRST

frameworks/policies/base/mid/com/android/internal/policy/impl/MidWindowManager.java中
//mHomeIntent.addCategory(Intent.CATEGORY_HOME);
改成 mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

frameworks/policies/base/mid/com/android/internal/policy/impl/RecentApplicationsDialog.java中
//new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),0);
改成 new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java中
//mHomeIntent.addCategory(Intent.CATEGORY_HOME);
改成 mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

frameworks/policies/base/phone/com/android/internal/policy/impl/RecentApplicationsDialog.java中
//ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),0);
改成 ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

4) 寫一個自己的Launcher.
可以參考android sample中的Launcher,或者android源代碼中的 /packages/apps/Launcher 來寫。
在Launcher中標記其是不是Launcher的最關鍵的代碼時Manifest中的filter:android:name="android.intent.category.HOME"
現在我們定義了自己的filter,那麼,我們在我們自己寫的Launcher中將Manifest改為:
<application android:process="android.process.acore3" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstAppActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME_FIRST" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity>
</application>

然後將編譯好的apk放到/out/target/proct/generic/system/app目錄下。

5)將Android自帶的Launcher刪除掉,包括源代碼(packages/apps/Launcher)和apk(/out/target/proct/generic/system/app/Launcher.apk)。

6)
做完這些工作,就可以重新編譯Android了,我們可以編譯修改過的幾個相關的包。
如果之前編譯過了Android源碼,可以用mmm命令來編譯部分的改動。
這里需要這樣編譯:

$ . build/envsetup.sh
$ mmm frameworks/base
$ mmm frameworks/base/services/java
$ mmm frameworks/policies/base/mid
$ mmm frameworks/policies/base/phone

7)
編譯完成後重新生成img文件。
$ make snod

8) 現在可以啟動Android模擬器來看效果了。
首先設置環境變數:
$ export ANDROID_PRODUCT_OUT= ./out/target/proct/generic
然後切換到
$ cd ./out/host/linux-x86/bin
運行
$ ./emulator

這樣我們啟動的模擬器裡面用的image就是我們剛才編譯好的自己定製的東西了。
從模擬器上可以看到啟動的Launcher是我們自己的Launcher,不會出現默認的Launcher了,也不會出現選擇界面。

9)我們再驗證一下,如果用戶裝上了一個其他的Launcher(Home)會怎麼樣。
從網上找一個一般的Launcher或者自己寫一個一般的Launcher裝上去,重新啟動,不會出現選擇界面。
按HOME鍵也不會出來兩個HOME來選擇。

閱讀全文

與怎麼做定製安卓系統相關的資料

熱點內容
定製六平方紅宇牌櫥櫃雷多少錢 瀏覽:737
寧波義大利傢具品牌有哪些品牌大全 瀏覽:636
築巢家居質量怎麼樣 瀏覽:698
上猶千惠家電電話多少 瀏覽:547
家居商場里東西有虛假怎麼辦 瀏覽:310
2020年九月多久適合裝修 瀏覽:125
鋼結構柱子用什麼材質裝修 瀏覽:943
量手定製對戒卷什麼意思 瀏覽:373
什麼木質傢具對人體健康有益 瀏覽:158
衣櫃kd軟體怎麼用 瀏覽:696
國家電網客服簡歷怎麼寫 瀏覽:877
裝修二級都能幹什麼活 瀏覽:946
金牌櫥櫃裝了多少錢 瀏覽:116
4米櫥櫃一般用多少板 瀏覽:211
為什麼裝修公司要送家電 瀏覽:874
連接衣櫃裡面的螺絲怎麼拆 瀏覽:63
大贏家電玩城怎麼老輸錢 瀏覽:717
建材門店導購怎麼樣啊 瀏覽:839
裝修垃圾有什麼東西 瀏覽:606
西安哪個建材市場出售白灰 瀏覽:302

友情鏈接