中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何開發MTK Android平臺

發布時間:2021-09-16 09:31:32 來源:億速云 閱讀:161 作者:柒染 欄目:移動開發

這篇文章給大家介紹如何開發MTK Android平臺,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.拷貝代碼倉庫從git@192.168.1.3:a89.git到work目錄下:

cbk@YCS:~/work$ll

cbk@YCS:~/work$rm-rfa89/

cbk@YCS:~/work$cd..

cbk@YCS:~/work$gitclonegit@192.168.1.3:a89.git

2.修改xshell用戶密碼:passwd

3.Android查看源代碼的版本號

1.)編譯的時候在終端中一開始就會打印出來:PLATFORM_VERSION:2.3.1

2.)直接去make文件中去看:build\core\version_defaults.mk//搜索該文件中的PLATFORM_VERSION值

4.編譯具體appsudoku,源碼文件包位于..\package\app\sudoku,命令為:

./mkmmpackage/app/sudoku

5.設置eclipse選擇啟動不同的AVD設置方式:

eclipse中右擊指定app文件夾、選擇Runas->Runconfigrations,彈出界面選擇Target項,選擇指定的AVD。(debug方式類似設置)

6.adb命令

adbdevice:查看當前的鏈接的設備情況

adblogcat>my.log:打印當前的log記錄到文件my.log中

7.adb無法啟動問題分析:

adbkill-server,然后adb–startserver

8、9.SDK的android類庫是android源碼工程的裁剪(SLIM)版本,不集成"@hide"類型的成員函數。故存在SDK上編譯的apk到處通行,源碼工程上編譯的apk很多情況下不能直接加載上其他軟件版本的平臺上。

10.打印查看項目的DENSITY_DEVICE,便于項目確認對應drawable文件夾:

res=getResources();//context.getResources();

dm=res.getDisplayMetrics();

density_device_value=dm.DENSITY_DEVICE;

11.Flashtool下載時候提示preloadusbvcomport驅動沒有安裝,需要安裝指定路徑:

D:\Tools\Mtk_release_Tools_W1316\Driver(binary)\SP_Drivers_v1.5\SP_Drivers_v1.5

另外需要網上下載mt65xx+preloader+驅動,將其中文件usb2ser.sys改名為usbser.sys拷貝到C:\WINDOWS\system32\drivers下面

備注:如果安裝驅動不成功,有可能是系統中缺少usbser.sys和mdmcpq.inf文件導致的。可以將本文檔所在路徑附帶的usbser.sys拷貝到C:\WINDOWS\system32\drivers下面,將mdmcpq.inf拷貝到C:\WINDOWS\inf即可。

12.默認壁紙的修改

a.屏幕上鎖屏界面背景圖片:

若是mtkslidelockscreen,可替換下面文件修改鎖界面時背景圖片

\mediatek\source\frameworks\banyan\res\res\drawable\lockscreen_default_wallpaper.png

若是androiddefaultlockscreen,可替換下面文件修改鎖界面時背景圖片

\frameworks\base\core\res\res\drawable\default_wallpaper.jpg

b.靜態壁紙:

我們可能會在系統的壁紙選擇中加入我們自己的壁紙,系統壁紙是Launcher模塊中加入的,我們只需要修改:./packages/apps/Launcher2/res/values-mdpi/wallpapers.xml在其中加入我們修改的壁紙的<item>wallpaperName</item>即可。

c.動態壁紙:

修改frameworks/base/core/res/res/values/config.xml文件中找到<stringname=”default_wallpaper_component”>@null</string>,修改為

<stringname=”default_wallpaper_component”>com.android.wallpaper/.nexus.NexusWallpaper</string>

其中com.android.wallpaper/.nexus.NexusWallpaper,”/”前為包名,后為類名

備注:如果要將內置到系統中的無sourcecode的第三方動態壁紙程序設置為默認動態壁紙,則需要知道該apk中WallpaperService對應的類名和包名,可以通過Google提供的apk-tool工具來得到該apk的資源文件,那么就可以通過查看AndroidManifest.xml文件去查找到對應的WallpaperService的類名和包名。

13.logo文件存放位置:

alps\mediatek\custom\common\uboot\logo\logo_folder

logo_folder:定義在..\mediatek\config\XXXX\ProjectConfig.mk中BOOT_LOGO=wsvganl

14.Lcd文件存放位置:

alps\mediatek\custom\common\kernel\lcm\lcd_folder

alps\mediatek\custom\common\uboot\lcm\lcd_folder

lcd_folder:定義在..\mediatek\config\XXXXProjectConfig.mk中:

CUSTOM_UBOOT_LCM=zs070#nt35510

CUSTOM_KERNEL_LCM=zs070#nt35510

15.camera文件存放位置:

alps\mediatek\custom\common\kernel\imgsensor\camera_folder

camera_folder:定義在..\mediatek\config\XXXX\ProjectConfig.mk中:

CUSTOM_HAL_IMGSENSOR=hi253_yuvgc0309_yuv#ov5647_rawhi704_yuv

CUSTOM_HAL_MAIN_IMGSENSOR=hi253_yuv#ov5647_raw

CUSTOM_HAL_SUB_IMGSENSOR=gc0309_yuv#hi704_yuv

CUSTOM_KERNEL_IMGSENSOR=hi253_yuvgc0309_yuv#ov5647_rawhi704_yuv

CUSTOM_KERNEL_MAIN_IMGSENSOR=hi253_yuv#ov5647_raw

CUSTOM_KERNEL_SUB_IMGSENSOR=gc0309_yuv#hi704_yuv

16.請教,android中如果修改了資源文件,如res/values/string.xml文件中的內容,那么如何編譯生效?我將該模塊重新編譯了一下如mmmpath/module-name,但是好像沒有生效

刪掉生成的jar包就OK了。具體在out/target/common/obj目錄下

./mkk6mmpackages/apps/Launcher2

刪除apk文件alps\out\target\product\k6\system\app

./mksystemimage

17.工程基本配置文件:

mediatek\config\xxx\ProjectConfig.mk

build\target\product\common.mk

18.如何將ProjectConfig.mk中的宏(注意添加的宏必須大寫)添加到C/C++源文件的接口:

[KEYWORD]

AUTO_ADD_GLOBAL_DEFINE_BY_NAME

AUTO_ADD_GLOBAL_DEFINE_BY_VALUE

AUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE

19.如何分別配置基線工程和特定項目的開關、代碼:

需要被所有工程用到的代碼或配置放在以下目錄:

mediatek/customer/common

mediatek/config/common

只被一個專用工程用到的配置和代碼應該放在什么位置?

mediatek/customer/$project$

mediatek/config/$project$

20.如何共享含很多Linux軟鏈接的代碼工程給他人:

解壓代碼包后,里面有很多linux的軟鏈接并且編譯后也會生成很多軟鏈接,如何將代碼復制給其他人,并且也可以正常編譯很重要。

禁止以下方法壓縮軟件:

1.不能在windows下用壓縮軟件壓縮或用復制粘貼的方式

2.不能再linux下用右鍵壓縮的方法壓縮代碼;以上方式都是使鏈接失效。

正確的方法是:tarczfv<project_name>.tar.gzalps

其中<project_name>為任意名字,最好是項目+版本的命名方式,alps為源代碼目錄,已當前要壓縮的目錄為準。

21.編譯用戶版軟件(UserBuild)的命令是什么

./makeMtk-opt=TARGET_BUILD_VARIANT=user${projectname}new

${projectname}為客戶的工程名

22.GCC工具鏈

GCC:(GNUCompilerCollection,GNU編譯器集合)是一套由GNU工程開發的支持多種編程語言的編譯器。GCC是自由軟件發展過程中的著名例子,由自由軟件基金會以GPL協議發布。GCC是大多數類Unix操作系統(如Linux、BSD、MacOSX等)的標準的編譯器,GCC同樣適用于微軟的Windows。

GCC工具鏈:

23.android不同版本代號含義(GB,GB2,ICS,ICS2,JB)

AndroidV2.3(GB,GB2)

AndroidV4.0(ICS,ICS2):冰淇淋

AndroidV4.1(JB):果凍豆

24.Android2.3如何將MTK滑動鎖屏替換為google默認滑動鎖屏:

請修改alps/mediatek/config/project_name/ProjectConfig.mk,將其中的

MTK_LOCKSCREEN_TYPE=2

修改為

MTK_LOCKSCREEN_TYPE=1

,修改后請重新buildproject

25JBframeowork資源添加新規則

JB版本代碼與之前的有點區別,就是在JB中添加frameworkresource,必須在

alps\frameworks\base\core\res\res\values\Public.xml中聲明,才會生成resourceID.

drawable<java-symboltype="drawable"name="xxx"/>name

frameworkinternalbuildAndroidSDK

apk<publictype="drawable"name="xxx"/>的方式聲明為frameworkpublic資源,注意,不需要寫id的值,且編譯時,需要手動updateapi。

26.如何修改默認主題為mtkslicer(纖薄主題)

1frameworks/base/core/java/android/context/res/Configuration.javaSKIN_UNDEFINED

"/system/framework/theme-res-slicer.apk"

2frameworks/base/libs/utils/AssetManager.cppopenNonAssetString8

themeRes("/system/framework/framework-res.apk");String8themeRes("/system/framework/theme-res-slicer.apk");

3mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpilockwallpaper.png

mediatek/source/frameworks/banyan/res/res/drawablelockscreen_default_wallpaper.png

lockscreen_default_wallpaper.png

4mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpithemewallpaper.png

frameworks/base/core/res/res/drawabledefault_wallpaper.pngdefault_wallpaper.jpg

27.如何在主題管理(ThemeManager)中,客制化添加一套自己的Theme

1、在alps/mediatek/source/frameworks/themes目錄下,添加您自己的資源目錄theme-res-

xxx,以原有的3套theme為例子來參考即可,您需要為新添加的theme-res-xxx準備相應的資源和

Android.mk/AndroidManifest.xml等文件

2、在alps/build/target/product/common.mk文件中,找到MTK_THEMENANAGER_APP這個關鍵字,在

如下這個判斷中,添加自己的資源包的名字

ifeq($(strip$(MTK_THEMEMANAGER_APP)),yes)

PRODUCT_PACKAGES+=theme-res-mint\

theme-res-mocha\

theme-res-raspberry\

theme-res-xxx

endif

28.如何讓自己開發的Application,能適應主題管理(ThemeManager)中的各種主題風格

1、編輯alps/frameworks/base/data/etc/thememap.xml文件按照已有的app的樣式添加您自己的

app所想要替換的resource的名稱,可以參考Launcher2。

2、為自己的app在alps/mediatek/source/frameworks/themes/theme-res-xxx(themename)目錄下

添加具體風格所對應的資源,按照已有的app的樣式來添加;同樣以Launcher2為例,注意這里的資

源放置路徑要跟原始app里面被替換的資源的路徑保持一樣,資源的名稱也要保持一樣。

29.非hdpi項目,狀態欄刷新、或者list列表界面等出現顯示內容花屏、錯亂的情況,是什么原因

MTKrelease給客戶的工程,在75平臺、AndroidV2.3和V4.0的版本上,默認只會buildhdpi資源到系統里,也就是說,alps/meidatek/config/xxx/ProjectConfig.mk中的MTK_PRODUCT_LOCALESdefault只加入了hdpi,如果客戶的項目不是hdpi的,就可能出現這種顯示錯亂的情況。

解決的方法:請客戶針對其他非hdpi的項目,手動加入相應的*dpi到MTK_PRODUCT_LOCALES里:HVGA分辨率需要加入mdpi這一項;QVGA需要加入ldpi這一項。

30.二級菜單的背景圖片:

進入設置時默認的黑色背景,放在

/frameworks/base/core/res/res/drawable-nodpi/backgroud_holo_dark.jpg。

默認壁紙在系統源碼里是放在/frameworks/base/core/res/res/drawable-large-nodpi和drawable-xlarge-nodpi下的default_wallpaper.jpg,

31.6589項目如何關閉NavigationBar:

默認NavigationBar的控制在alps/frameworks/base/core/res/res/values/config.xml

<boolname=“config_showNavigationBar”>true</bool>

//6589MTKDemoProjectNavigationBarResourceOverlayNavigationBarresourceoverlay:

6589navigationBar最終控制在,會覆蓋掉上述設置:

alps/mediatek/custom/project_name/resource_overlay/generic/frameworks/base/core/res/res/values/config.xml

<boolname=“config_showNavigationBar”>true</bool>

32..9.png圖片制作

java的jdk、android的sdk中tools目錄下的draw9patch.bat

33.如何去掉狀態欄和標題欄

修改對應的Activity,添加以下代碼:

finalWindowwin=getWindow();

win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);//removestatusbar

requestWindowFeature(Window.FEATURE_NO_TITLE);

requestWindowFeature(Window.FEATURE_PROGRESS);//removetitlebar

注意:必須添加在setContentView()方法之前,否則將提示錯誤。

34.如何在狀態欄上增加一個icon、如何調整狀態欄icon之間的顯示順序:

具體查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

35.在任意非鎖屏界面,按某個預設定好的按鍵進入某個Activity的功能

PhoneWindowManager.java:interceptKeyBeforeDispatching()----按鍵響應統一處理接口

具體查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

36.如何自定義把工程模式的暗碼:

*#*#3646633#*#*

alps/mediatek/source/packages/EngineerMode/src/com/mediatek/engineermode/EngineerModeReceiver.java

//process*#*#3646633#*#*

UriengineerUri=Uri.parse("android_secret_code://3646633");

alps/mediatek/source/packages/EngineerMode/AndroidManifest.xml

<receiverandroid:name=".EngineerModeReceiver">

<intent-filter>

<actionandroid:name="android.provider.Telephony.SECRET_CODE"/>

<dataandroid:scheme="android_secret_code"android:host="3646633"/>

</intent-filter>

</receiver>

37.觸屏的震動響應接口

調用native方法來開啟和關閉vibrator:

nativestaticvoidvibratorOn(longmilliseconds);

nativestaticvoidvibratorOff();

調用方法如下:VibratorService.vibratorOn()

38.Database位置和讀取方式:

以下是database的路徑(GB2andICS的project):

-MAUIMETAdatabaseisunderpath:

alps\mediatek\custom\common\modem\${Project}\BPLGUInfoCustomApp_MTXXX_S01_MAUI_XXX

-ALPSMETAdatabaseisunderpath:

alps\mediatek\source\cgen\APDB_MTXXX_S01_ALPS.XXXX_WXXX

Metatool有兩種類型:

一種是MAUIMetaTool,用來讀和修改modem的nvram數據。

另一種是SP_META,用來讀和修改androidapp端的nvram數據。

Nvram數據讀取方式:

首先,選擇這正確的tool;

然后通過usb把電腦和手機連起來,再點擊optionmenu中的connecttosmartphone,

開機,手機會進入metamode;

最后選擇nvrameditor,來選擇正確的database。

39.如何抓取mobilelog

具體查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

40.如何編譯單雙卡版本

具體查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

41.如何遠端調試framework

1.請在eclipse中新建一個java工程,導入framework的代碼(導入的framework代碼需要和手機的代碼版本一致)

2.請在ddms界面查看system_process對應的TCP端口

3.請在run/DebugConfiguration...菜單彈出的對話框添加一個RemoteJavaApplication,選擇第一步新建的project,使用第二步得到的端口號

4.請在需要調試的地方設置斷點,然后調試

42.如何確認一個應用程序的安裝位置

android:installLocation="internalOnly"

android:installLocation="auto"

android:installLocation="preferExternal">

具體查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

43.如何在activity中控制屏幕點亮與關閉

Android中通過各種Lock鎖對電源進行控制,需要注意的是加鎖和解鎖必須成對出現。

//啟用屏幕常亮功能

PowerManagerpm=(PowerManager)getSystemService(POWER_SERVICE);

wakeLock=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP,myPowerManager.TAG);

wakeLock.acquire();

//關閉屏幕常亮功能

if(wakeLock!=null){wakeLock.release();}

44.如何安裝/卸載APK

DDMS工具/ADB命令/FileManager文件夾中點擊安裝

關于如何開發MTK Android平臺就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

济宁市| 休宁县| 扶余县| 宝应县| 卓尼县| 曲麻莱县| 宣汉县| 庄浪县| 黄石市| 乳源| 泰和县| 大厂| 义马市| 尼勒克县| 城市| 富锦市| 东阿县| 花垣县| 弥勒县| 玉门市| 若羌县| 昌都县| 雷山县| 黔西县| 天全县| 奉节县| 安丘市| 屏南县| 高平市| 旬邑县| 安阳县| 漳州市| 赤城县| 梁平县| 象山县| 通渭县| 安远县| 安阳市| 长寿区| 刚察县| 绥芬河市|