千家信息网

如何开发MTK Android平台

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家介绍如何开发MTK Android平台,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.拷贝代码仓库从git@192.168.1.3:a89.git到work目录下
千家信息网最后更新 2026年11月03日如何开发MTK Android平台

这篇文章给大家介绍如何开发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在其中加入我们修改的壁纸的wallpaperName即可。

c.动态壁纸:

修改frameworks/base/core/res/res/values/config.xml文件中找到@null,修改为

com.android.wallpaper/.nexus.NexusWallpaper

其中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.tar.gzalps

其中为任意名字,最好是项目+版本的命名方式,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.

drawablename

frameworkinternalbuildAndroidSDK

apk的方式声明为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

true

//6589MTKDemoProjectNavigationBarResourceOverlayNavigationBarresourceoverlay:

6589navigationBar最终控制在,会覆盖掉上述设置:

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

true

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

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平台就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 代码 资源 编译 工程 壁纸 版本 目录 选择 方式 项目 方法 系统 位置 界面 软件 图片 背景 路径 链接 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技活动banner 深圳科技互联网 奇士达互联网科技 广西互联网科技公司 赫美联合互联网科技 汉立互联网科技有限公司联系电话 欧洲十大科技互联网公司 宜昌元轩互联网科技有限公司 科技类公司包括互联网吗 天津腾达互联网科技有限公司 国大互联网教育科技有限公司薪资 山东子淼互联网科技有限公司 城市宝互联网科技有限公司 风投北京互联网科技 广州燕处互联网科技有限公司 互联网科技手抄报图片 数字科技和互联网金融哪个好 互联网领先科技成果宣传视频 互联网科技创新方面的资料 如何强化互联网金融科技 深圳互联网络科技有限公司 互联网科技ppt模板 中盈科技互联网信息有限公司 佳云科技和互联网广告 互联网经济与金融科技 互联网科技和信息 群盈汇互联网科技有限公司 广东工业互联网大赛深圳学泰科技 广州有谷有贝互联网科技有限公司 科技互联网行业投资研究
0