日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目客制化文档

發布時間:2024/1/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目客制化文档 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文檔,有些內容需要根據具體的情況做修改,請知悉

項目準備工作

1)提前瀏覽一下需求,確認是否有功能性需求以及一些疑難雜癥。

跟項目經理確認清楚每一條需求,不可似是而非。

需跟項目經理確認該需求是之前的需求還是新增需求,如果是之前的需求,需要找到之前的負責人,詢問該需求進度,如未處理,需跟項目經理說明具體情況,并給出開發周期,看能否接受,同時咨詢一下大概的量產時間,做到心中有數。

2)不定時的看看公版是否增加了新功能,客戶項目同步公版代碼。

更新公版代碼后須告知驅動,否則驅動調試編譯的時候可能會報錯,這樣不僅浪費驅動的時間,也延誤了自己出版本的時間。

3)如果是GMS項目,如果確認客戶需求是否有違背GMS要求的,及時跟客戶溝通。

4)如果需求較多,建議在晚上下班時間編一個debug的版本,第二天來作為調試使用,能節約大量的修改調試時間。

CTS相關失敗項

juejin.im/post/5cf60e…

創建主板

使用腳本

source build/envsetup.sh

clone_project A B

A是base版本,B是new版本

創建新項目的步驟

1)新建一個客戶基本都在droi目錄下配置

2)根據郵件信息來參考copy那個項目,例如參考A,建B

3)copy A to B

4)修改copy出來的項目里面的所有客戶名字

3.1,進入B文件夾;3.2,grep -r A *,修改所有A為B;3.3,Ctrl + f 查找A,出來的文件的名字A改為B;3.4,打開ProjectConfig.mk;3.5,查看CUSTOM_MODEM=?3.6,查看TYD_MMI_FLASH_TYPE = ?3.7,查看google的gms包是否是要求的:TYD_MMI_GOOGLE_APPS_VERSION = R83.8,其他的按客戶需求修改; 復制代碼

5)如果沒有參考的,直接copy一個相同配置的項目(最好是公版的,如果沒有自行參考),去掉others文件夾

6)這樣一個客戶就基本完成,可以提交了

創建新項目需要提交的文件

1)ProjectConfig.mk : 從device/droi/主板目錄/ProjectConfig.mk 拷貝并修改相應的宏

2)debug_defconfig/defconfig : 從kernel-3.18/arch/arm{arm64}/configs/主板名_debug_defconfig和主板名_defconfig拷貝修改文件名字并修改相關配置

3)lk.mk : 從vendor/mediatek/proprietary/bootable/bootloader/lk/project/主板名.mk拷貝修改文件名字并修改相關配置

編譯modem

參考凌春光的文檔《modem編譯流程》

配置Modem

1)根據項目的配置表,確認modem的配置

2)如果相對應配置的modem在vendor/mediatek/proprietary/modem目錄下是否存在,如果不存在則需要編譯modem,并將編譯好的modem放到vendor/mediatek/proprietary/modem目錄。

3)在ProjectConfig.mk文件中配置CUSTOM_MODEM宏: CUSTOM_MODEM = pwd3_125

配置FlASH

1)根據項目的配置表,確認flash的配置

2)根據配置在vendor/mediatek/proprietary/bootable/bootloader/preloader/freeme_flash_type目錄下找相對應的文件夾,并將名字賦給ProjectConfig.mk文件中的FREEME_FLASH_TYPE。

3)online.mediatek.com/FAQ#/SW/FAQ…

版本號如何設置

《TYZN-PCBA軟件版本命名規范及項目命名規則V3.2.pdf》

鏈接:pan.baidu.com/s/1yypCsn_v…

MTK_CLEARMOTION_SUPPORT

添加以下兩個宏的時候可能會導致開機異常,如鈴聲不響、開機流程異常等,需要確認清楚

MTK_CLEARMOTION_SUPPORT = yes

MTK_MIRAVISION_SETTING_SUPPORT = yes

遇到無法解決的問題,如何提eservice給MTK?

www.jianshu.com/p/72ab3dd82…

如何兼容新的flash

www.jianshu.com/p/ab14fb772…

如何編譯分離式Flash 工廠軟件

www.jianshu.com/p/d6dfc4e77…

屏幕亮度設置

SettingsProvider/res/values/defaults.xml 中設置 def_screen_brightness

多媒體,鬧鐘,來電鈴聲,通話聲音音量調整

P0: AudioService.java 中:

AudioSystem.STREAM_VOICE_CALL AudioSystem.STREAM_MUSIC AudioSystem.STREAM_ALARM AudioSystem.STREAM_RING AudioSystem.STREAM_SYSTEM復制代碼

桌面菜單全透明

  • http://10.20.40.17:8080/#/c/86151/
override/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/ShelfScrimView.java override/packages/apps/Launcher3/res/values-v21/styles.xml override/packages/apps/Launcher3/src/com/android/launcher3/BaseDraggingActivity.java override/packages/apps/Launcher3/src/com/android/launcher3/folder/FolderPagedView.java override/packages/apps/Launcher3/src/com/android/launcher3/views/ScrimView.java 復制代碼

客制化桌面圖標

juejin.im/post/5cd8e3…

默認可以旋轉桌面

def_accelerometer_rotation 設置為 true

allow_rotation 設置為 true

桌面壁紙縮放的問題

將提供的壁紙文件,右鍵選擇更改大小,選擇像素,根據屏幕尺寸大小修改后,將改好的壁紙放在frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png

系統第一次啟動時沒有wallpaper_info.xml信息規定大小,就會已顯示屏分辨率長寬的最大值最為壁紙的長和框,舉個例子:屏幕分辨率為480*800,則生成的wallpaper_info.xml信息為800*800,若壁紙長寬皆大于800,則會取0-480和0-800的長寬作為默認壁紙,若壁紙為480*800,則左右個補全160,生成為800*800的壁紙,因此也導致壁紙產生偏移,若是長寬皆小于800,好像會設置失敗,延用之前的壁紙,這里沒搞太懂。 那如何設置正確的默認壁紙,我的做法是將480*800的壁紙做成800*800的大小,前480*800為默認壁紙,后320為底色,這樣就不會被裁剪或生成偏移了。

桌面左右滑動

去掉二級菜單,只保留一級菜單,左右滑動:

http://10.20.40.21:8081/#/c/TYD/platforms/android-28/ALPS-P0-MP1-6739/project/droi_a9/+/1956/

freeme相機增加美顏

freemeCamConfig.xml: CAMERA_FACE_BEAUTY_SHOW、CAMERA_FRONT_FACE_BEAUTY_SHOW設為true

freeme相機增加背景虛化功能

freemeCamConfig.xml: CAMERA_BACKGROUND_VIRTUAL_SUPPORT設為true

開啟觸屏提示音,短音源第一聲Speaker無法聽到

mediatek/proprietary/hardware/audio/common/V3/aud_drv/AudioALSAHardwareResourceManager.cpp @@ status_t AudioALSAHardwareResourceManager::startOutputDevice_l(const audio_devicAudioALSAANCController::getInstance()->setSpeakerEnabled(true);#endifOpenSpeakerPath(SampleRate); + usleep(1000*X); //添加延時X(可以修改為100)毫秒}復制代碼

添加手動寫IMEI號的指令

FreemeSpecialCharSequenceMgr.java中添加

.build("*#*#1122#*#*", "com.freeme.intent.action.IMEI_SETTING", "alternative.imei_setting") // Imei setting

關機電池動畫位置

vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/ vendor/mediatek/proprietary/external/libshowlogo/cust_display.h 復制代碼

修改谷歌文件夾里app名字顏色

修改下拉狀態欄透明度

vendor/mediatek/proprietary/packages/apps/SystemUI/res/color/qs_background_dark.xml 復制代碼

修改狀態欄圖標位置

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/status_bar.xml vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/keyguard_status_bar.xml(鎖屏時不顯示) 復制代碼

工廠模式硬件信息增加fingerprint

private final String getHwInfos() {.....String fingerprint = android.os.SystemProperties.get("ro.hardware.fingerprint", "null");if (fingerprint != "null") {infos.append("[ fingerprint ]:\n" + fingerprint + "\n");}return infos.toString();} 復制代碼

內置apk

juejin.im/post/5cd411…

1、apk不含so文件 將APK放入文件夾內,改名為:yourModuleName.apk(mk文件中的yourModuleName)。Android.mk文件與apk文件同級。

Android.mk內容如下:

LOCAL_MODULE_TAGS 是指定在什么版下才會編譯這個Android.mk user: 指該模塊只在user版本下才編譯 eng: 指該模塊只在eng版本下才編譯 tests: 指該模塊只在tests版本下才編譯 optional:指該模塊在所有版本下都編譯 LOCAL_MODULE_SUFFIX 是指文件后綴.apk LOCAL_CERTIFICATE指apk的簽名,可以有:testkey、media、platform、shared,如果文件已經簽過名,則使用PRESIGNED。 LOCAL_MODULE_PATH 指你要安裝的apk的路徑。 $(TARGET_OUT)/priv-app這個路徑下,apk不可卸載。 $(TARGET_OUT_DATA_APPS)這個路徑下apk卸載后不再恢復 $(TARGET_OUT)/vendor/operator/app這個路徑下apk卸載后恢復出廠設置可以恢復apk 復制代碼

Android P(9.0) userdebug版本執行adb remount

android P版本后google啟用avb(Android Verified Boot)2.0,verified boot and DM-verity默認啟用策略發生了變化

* Android P + kernel-4.4 or kernel-3.18 - download preloader with verified boot disabled which location is the same as scatter file //preloader_<PROJECT>_SBOOT_DIS.bin - adb root - adb disable-verity - adb reboot - adb root - adb remount* Android P + kernel-4.9 or after - download preloader with verified boot disabled which location is the same as scatter file. //preloader_<PROJECT>_SBOOT_DIS.bin - boot to Home Screen - go to setting -> system -> Developer options -> OEM unlocking - adb reboot bootloader - fastboot flashing unlock - press volume up key - fastboot reboot - adb root - adb disable-verity - adb reboot - adb root - adb remount復制代碼

將鎖屏方式默認為None

SettingsProvider/res/values/defaults.xml

def_lockscreen_disabled 設置為true

更新開關機動畫

參考FAQ10590制作開關機動畫壓縮文件。

注意點:制作好動畫后,選中folder1文件夾、folder2文件夾和desc.txt,郵件壓縮,壓縮文件格式.zip,壓縮方式選擇存儲。 切忌多一層bootanimation文件夾。

制作好的壓縮文件放在droi下對應的工程目錄下。

關閉特定的Log

有時客戶會要求關閉特定的log,大多是底層的log,具體方法如下:

1、首先根據客戶提供的信息,確認關閉的log tag,比如MtkOmxMVAMgr/Acodec/MtkCam

2、在代碼中搜索相關內容 cgrep "LOG_TAG \"ACodec\"",但是有的log是在so庫中的,無法關閉,比如MtkOmxMVAMgr

3、打開相關文件,將相關內容注釋即可 // #define LOG_TAG "ACodec"

User版本的root權限

juejin.im/post/5cd249…

如何配置全球通和非全球通客戶

modem的AP端配置

www.jianshu.com/p/de7327037…

緊急聯系人功能

設置緊急聯系人,并且可以通過長按音量+和音量-來撥打緊急聯系人號碼

http://10.20.40.21:8081/#/c/TYD/platforms/android-28/ALPS-P0-MP1-6739/project/droi_pd3d/+/1508/

新項目無法登陸Google account

www.jianshu.com/p/943939173…

源碼編譯錯誤問題定位

可以在log中查找以下幾個關鍵字:

ERROR:、FAILED:、String ERROR

調整桌面圖標的行之間距離

applist layout:

packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.javaupdateIconSize(float scale, Resources res, DisplayMetrics dm)://*/update applist layoutallAppsCellHeightPx = allAppsIconSizePx + allAppsIconDrawablePaddingPx+ Utilities.calculateTextHeight(allAppsIconTextSizePx)+ allAppsIconDrawablePaddingPx * 3; /*/allAppsCellHeightPx = getCellSize().y; //*/ 復制代碼

workspace layout:

packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.javaupdateWorkspacePadding()://*/ZY.zhanglin,20190301. update workspace layoutint paddingBottom = hotseatBarSizePx ;/*/int paddingBottom = hotseatBarSizePx + verticalDragHandleSizePx;//*/復制代碼

google 文件夾圖標有毛邊

Launcher3/src/com/android/launcher3/folder/PreviewBackground.java 將半徑增大4:private void drawCircle(Canvas canvas,float deltaRadius) {float radius = getScaledRadius();canvas.drawCircle(radius + getOffsetX(), radius + getOffsetY(),(radius - deltaRadius) + 4, mPaint);}復制代碼

第三方應用白名單

很多出貨國內要使用freeme os的客戶,比如天龍世紀、南極星,基本都要內置某個對講類的app。由于 freeme os的對第三方應用的限制很多,內置這些應用時需要注意解除一些限制,保證此類app功能正常運行。

針對freeme 8.1 (android O1)總結如下:

1、默認賦予該應用申請的所有權限

vendor/freeme/frameworks/base/data/etc/default-permissions-freeme.xml 具體寫法可參考該文件的內容,比如: <exception package="com.ctchat.sample" type="" trust="true" > </exception> 復制代碼

2、設置-應用-自啟動管理,默認打開開關后臺服務才能收到開機廣播或者其他廣播

vendor/freeme/packages/providers/FreemeConfigProvider/RRO/res/values/arrays.xml,添加item即可默認打開 <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="config_atlas_custom_white_list" translatable="false"> <item>com.ctchat.sample</item> </string-array> </resources> 復制代碼

3、點擊最近應用里的清理會殺死不帶鎖的應用,需要默認上鎖

vendor/freeme/packages/providers/FreemeSettingsProvider/res/values/defaults.xml <string name="def_sysui_recent_locked_tasks" translatable="false">com.ctchat.sample</string> 復制代碼

4、桌面一鍵清理、設置-安全中心里的懸浮窗管理和通知管理,這三項都需要找負責安全中心來客制,他會提供給你以下文件去override即可

vendor/freeme/packages/apps/security/Security/default_local_config

5、進程保活,低內存時不輕易被系統殺掉

vendor/freeme/frameworks/base/core/java/com/freeme/internal/util/FreemeCustomizedOom.java private static final Map<String, Integer> DEFAULT_APP_ADJ_MAP = new HashMap<String, Integer>() {{put("com.ctchat.sample", HEAVY_WEIGHT_APP_ADJ); }}; 復制代碼

MTK FMRadio 修改工作頻率范圍的方法

全球大部分國家的調頻廣播頻率范圍基本都是87.5-108.0 Mhz,但也有些例外,比如日本的為76.0-90.0Mhz。

mtk平臺默認都是87.5-108.0Mhz,如果該機型銷往日本,那么我們就需要修改FM頻率范圍。

MTK已經預留好宏和變量,改個值就好,代碼是基于O的,但是這一塊基本沒什么變化,O之前以及之后應該也是適用的,可能文件路徑會有改變

1、device/mediatek/common/kernel-headers/linux/fm.h 找到以下宏修改如下

#define FMR_BAND 3 //FM radio band, 1:87.5MHz~108.0MHz; 2:76.0MHz~90.0MHz; 3:76.0MHz~108.0MHz; 4:special #define FMR_BAND_FREQ_L 760 //FM radio special band low freq(Default 87.5MHz) #define FMR_BAND_FREQ_H 1080 //FM radio special band high freq(Default 108.0MHz)#define FM_BAND_DEFAULT FM_BAND_JAPANW#define FM_RAIDO_BAND FM_BAND_JAPANW 復制代碼

2、vendor/mediatek/proprietary/packages/apps/FMRadio/src/com/android/fmradio/FmUtils.java

修改如下幾個變量

// maximum station frequency private static final int HIGHEST_STATION = 1080; // minimum station frequency private static final int LOWEST_STATION = 760; // maximum station frequency 50khz private static final int HIGHEST_STATION_50KHZ = 10800; // minimum station frequency 50khz private static final int LOWEST_STATION_50KHZ = 7600; 復制代碼

修改時區

www.jianshu.com/p/03b6c8c34…

FOTA差分包制作流程相關

www.jianshu.com/p/d24648a87…

近斯任務界面的的文字有很嚴重的鋸齒

packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/RecentsView.javaRecentsView():+ mEmptyMessagePaint.setAntiAlias(true); 復制代碼

待更新

總結

以上是生活随笔為你收集整理的项目客制化文档的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。