MTKANdroid开发_第1页
MTKANdroid开发_第2页
MTKANdroid开发_第3页
MTKANdroid开发_第4页
MTKANdroid开发_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MTKAndroid 菜鸟上手之旅1 .拷贝代码仓库从 git192.168.1.3:a89.git 到 work 目录下:cbkYCS:/work$llcbkYCS:/work$rm-rfa89/cbkYCS:/work$cd.cbkYCS:/work$gitclonegit192.168.1.3:a89.git2 .修改 xshell 用户密码:passwd3 .Android 查看源代码的版本号1 .)编译的时候在终端中一开始就会打印出来:PLATFORM_VERSION2.3.12 .)直接去 make 文件中去看:buildcoreversion_defaults.mk/搜索该文件中

2、的 PLATFORM_VERSION4 .编译具体 appsudoku,源码文件包位于.packageappsudoku,命令为:./mkmmpackage/app/sudoku5 .设置 eclipse 选择启动不同的 AVDiS 置方式:eclipse中右击指定 app文件夹、 选择 Runas-Runconfigrations,弹出界面选才 TTarget项,选择指定的 AVD(debug 方式类似设置)6 .adb 命令adbdevice:查看当前的链接的设备情况adblogcatmy.log:打印当前的 10g 记录到文件 my.log 中7 .adb 无法启动问题分析:adbkil

3、l-server,然后 adb-startserver9.SDK 的 android 类库是 android 源码工程的裁剪(SLIM)版本,不集成hide类型的成员函数。故存在 SDKk 编译的 apk 到处通行,源码工程上编译的 apk 很多情况下不能直接加载上其他软件版本的平台上。10 .打印查看项目的 DENSITY_DEVICE 便于项目确认对应 drawable 文件夹:res=getResources();/context.getResources();dm=res.getDisplayMetrics();density_device_value=dm.DENSITY_DEVIC

4、E;11 .Flashtool 下载时候提示 preloadusbvcomport 驱动没有安装,需要安装D:ToolsMtk_release_Tools_W1316Driver(binary)SP_Drivers_v1.5SP_Drivers_v1.5 另外需要网上下载 mt65xx+preloader+驱动,将其中文件 usb2ser.sys 改名为usbser.sys 拷贝到 C:WINDOWSsystem32drivers 下面备注:如果安装驱动不成功,有可能是系统中缺少 usbser.sys 和 mdmcpq.inf 文件导致的。可以将本文档所在路径附带的 usbser.sys 拷贝

5、到C:WINDOWSsystem32drivers 下面,将 mdmcpq.inf 拷贝到 C:WINDOWSinf 即可。12 .默认壁纸的修改a.屏幕上锁屏界面背景图片:若是 mtkslidelockscreen,可替换下面文件修改锁界面时背景图片mediateksourceframeworksbanyanresresdrawablelockscreen_default_wallpaper.png若是 androiddefaultlockscreen,可替换下面文件修改锁界面时背景图片frameworksbasecoreresresdrawabledefault_wallpaper.jpg

6、b.静态壁纸:一我们可能会在系统的壁纸选择中加入我们自己的壁纸,系统壁纸是 Launcher 模块中加入的,我们只需要修改:./packages/apps/Launcher2/res/values-mdpi/wallpapers.xml 在其中力口入我们修改的壁纸的wallpaperName即可。c.动态壁纸:修改 frameworks/base/core/res/res/values/config.xml 文件中找至 Unull/string,修改为com.android.wallpaper/.nexus.NexusWallpaper其中 com.android.wallpaper/.nex

7、us.NexusWallpaper,”/”前为包名,后为类名备注:如果要将内置到系统中的无 sourcecode 的第三方动态壁纸程序设置为默认动态壁纸,则需要知道该 apk 中 WallpaperService 对应的类名和包名,可以通过 Google提 供 的 apk-tool 工 具 来 得 到 该 apk 的 资 源 文 件 , 那 么 就 可 以 通 过 查 看AndroidManifest.xml 文件去查找到对应的 WallpaperService 的类名和包名。13 .log。文件存放位置:alpsmediatekcustomcommonubootlogologo_folder

8、10go_folder:定义在.mediatekconfigXXXXProjectCon 巾 g.mk 中BOOT_LOGO=wsvganl14 .Lcd 文件存放位置:alpsmediatekcustomcommonkernellcmlcd_folderalpsmediatekcustomcommonubootlcmlcd_folderlcd_folder:定义.mediatekconfigXXXXProjectConfig.mk 中:CUSTOM_UBOOT_LCM=zs070#nt35510CUSTOM_KERNEL_LCM=zs070#nt3551015 .camera 文件存放位置:

9、alpsmediatekcustomcommonkernelimgsensorcamera_foldercamera_folder:定义在.mediatekconfigXXXXProjectConfig.mkCUSTOM_HAL_IMGSENSOR=hi253_yuvgc0309_yuv#ov5647_rawhi704_yuvCUSTOM_HAL_MAIN_IMGSENSOR=hi253_yuv#ov5647_rawCUSTOM_HAL_SUB_IMGSENSOR=gc0309_yuv#hi704_yuvCUSTOM_KERNEL_IMGSENSOR=hi253_yuvgc0309_yuv#o

10、v5647_rawhi704_yuvCUSTOM_KERNEL_MAIN_IMGSENSOR=hi253_yuv#ov5647_rawCUSTOM_KERNEL_SUB_IMGSENSOR=gc0309_yuv#hi704_yuv16 .请教,android 中如果修改了资源文件,如 res/values/string.xml 文件中的内容,那么如何编译生效?我将该模块重新编译了一下如 mmmpath/module-name,但是好像没有生效删掉生成的 jar 包就 OK 了。具体在 out/target/commonobj 目录下./mkk6mmpackages/apps/Launcher2

11、删除 apk 文件 alpsouttargetproductk6systemapp./mksystemimage17 .工程基本配置文件:mediatekconfigxxxProjectConfig.mkbuildtargetproductcommon.mk18 .如何将 ProjectConfig.mk 中的宏(注意添加的宏必须大写)添加到 C/C+硼文件的接口:KEYWORDAUTO_ADD_GLOBAL_DEFINE_BY_NAMEAUTO_ADD_GLOBAL_DEFINE_BY_VALUEAUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE 具体查看:MTK_on

12、_line_FAQ_SW_ALPS_20130123.pdf19 .如何分别配置基线工程和特定项目的开关、代码:需要被所有工程用到的代码或配置放在以下目录:mediatek/customer/commonmediatek/config/common只被一个专用工程用到的配置和代码应该放在什么位置?mediatek/customer/$project$mediatek/config/$project$具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf20 .如何共享含很多 Linux 软链接的代码工程给他人:解压代码包后,里面有很多 linux 的软链接并且编译后

13、也会生成很多软链接,如何将代码复制给其他人,并且也可以正常编译很重要。禁止以下方法压缩软件:1 .不能在 windows 下用压缩软件压缩或用复制粘贴的方式2 .不能再 linux 下用右键压缩的方法压缩代码;以上方式都是使链接失效。正确的方法是:tarczfvproject_name.tar.gzalps其中project_name为任意字, 最好是项目+版本的命名方式, alps 为源代码目录,已当前要压缩的目录为准。21 .编译用户版软件(UserBuild)的命令是什么./makeMtk-opt=TARGET_BUILD_VARIANT=user$projectnamenew$proj

14、ectname为客户的工程名22 .GCC 工具链GCC:(GNUCompilerCollection,GNUS 译器集合)是一套由 GNUX 程开发的支持多种编程语言的编译器。GCO 自由软件发展过程中的著名例子,由自由软件基金会以 GPL议发布。GCO 大多数类 Unix 操作系统(如 Linux、BSDMacOSX 等)的标准的编译器,GCCW 样适用于微软的 WindowsGCCX 具链:23 .android 不同版本代号含义(GB,GB2,ICS,ICS2,JB)AndroidV2.3(GB,GB2)AndroidV4.0(ICS,ICS2):冰淇淋AndroidV4.1(JB):

15、果冻豆24 .Android2.3 如何将 MTKt 动锁屏替换为 google 默认滑动锁屏:请修改alps/mediatek/config/project_name/ProjectConfig.mk,将其中的MTK_LOCKSCREEN_TYPE=2修改各MTK_LOCKSCREEN_TYPE=1,修改后请重新 buildproject25 JBframeowork 资源添加新规则JB 版本代码与之前的有点区别,就是在 JB 中添加 frameworkresource,必须在alpsframeworksbasecoreresresvaluesPublic.xml 中声明,才会生成resou

16、rceID.drawablenameframeworkinternalbuildAndroidSDKapk的方式声明为 frameworkpublic资源,注意,不需要写 id 的值,且编译时,需要手动 updateapi。26 .如何修改默认主题为 mtkslicer(纤薄主题)1 frameworks/base/core/java/android/context/res/Configuration.javaSKIN_UNDEFINED/system/framework/theme-res-slicer.apk2 frameworks/base/libs/utils/AssetManager

17、.cppopenNonAssetString8themeRes(/system/framework/framework-res.apk);String8themeRes(/system/framework/theme-res-slicer.apk);3mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpilockwallpaper.pngmediatek/source/frameworks/banyan/res/res/drawablelockscreen_default_wallpaper.pnglockscr

18、een_default_wallpaper.png4mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpithemewallpaper.pngframeworks/base/core/res/res/drawabledefault_wallpaper.pngdefault_wallpaper.jpg27.如何在主题管理(ThemeManager 井,客制化添加一套自己的 Theme1、在 alps/mediatek/source/frameworks/themes 目录下,添加您自己的资源目录 theme-res

19、-xxx,以原有的 3 套 theme 为例子来参考即可,您需要为新添加的 theme-res-xxx准备相应的资源和Android.mk/AndroidManifest.xml 等文件2、在 alps/build/target/product/common.mk 文件中,找至 UMTK_THEMENANAGER_APP 键字,在如下这个判断中,添加自己的资源包的名字ifeq($(strip$(MTK_THEMEMANAGER_APP),yes)PRODUCT_PACKAGES+=theme-res-minttheme-res-mochatheme-res-raspberrytheme-res

20、-xxxendif28 .如何让自己开发的 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为例,注意这里的

21、资源放置路径要跟原始 app 里面被替换的资源的路径保持一样,资源的名称也要保持一样。29 .非 hdpi 项目,状态栏刷新、或者 list 列表界面等出现显示内容花屏、错乱的情况,是什么原因MTKrelease 给客户的工程,在 75 平台、AndroidV2.3 和 V4.0 的版本上,默认只会 buildhdpi 资源到系统里,也就是说,alps/meidatek/config/xxx/ProjectConfig.mk 中的MTK_PRODUCT_LOCALESdefaUW口入了hdpi,如果客户的项目不是hdpi的,就可能出现这种 1示错乱的情况。解决的方法:请客户针对其他非 hdpi

22、 的项目,手动加入相应的*dpi 到MTK_PRODUCT_LOCALESVG 酚辨率需要加入 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 项目如何关

23、闭 NavigationBar:默认 NavigationBar 的控制在alps/frameworks/base/core/res/res/values/config.xmltrue/6589MTKDemoProjectNavigationBarResourceOverlayNavigationBarresourceoverlay:6589navigationBar 最终控制在,会覆盖掉上述设置:alps/mediatek/custom/project_name/resource_overlay/generic/frameworks/base/core/res/res/values/conf

24、ig.xmltrue32 .9.png 图片制作java 的 jdk、android 的 sdk 中 tools 目录下的 draw9patch.bat33 .如何去掉状态栏和标题栏修改对应的 Activity,添加以下代码:finalWindowwin=getWindow();win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);/removestatusbarrequestWindowFeature(Window.FEATURE_NO_TITLE

25、);requestWindowFeature(Window.FEATURE_PROGRESS);/removetitlebar 注意: 必须添加在 setContentView()方法之前,否则将提示错误。34 .如何在状态栏上增加一个 icon、如何调整状态栏 icon 之间的显示顺序:具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf35 .在任意非锁屏界面,按某个预设定好的按键进入某个 Activity 的功能PhoneWindowManager.java:interceptKeyBeforeDispatching()-按键响应统一处理接口具体查看:MTK

26、_on_line_FAQ_SW_ALPS_20130123.pdf36 .如何自定义把工程模式的暗码:*#*#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.

27、xmlreceiverandroid:name=.EngineerModeReceiver”37 .触屏的震动响应接口调用 native 方法来开启和关闭 vibrator:nativestaticvoidvibratorOn(longmilliseconds);nativestaticvoidvibratorOff();调用方法如下:VibratorService.vibratorOn()38 .Database 位置和读取方式:以下是 database 的路径(GB2andICS 的 project):-MAUIMETAdatabaseisunderpath:alpsmediatekcus

28、tomcommonmodem$ProjectBPLGUInfoCustomApp_MTXXX_S01_MAUI_XXX-ALPSMETAdatabaseisunderpath:alpsmediateksourcecgenAPDB_MTXXX_S01_ALPS.XXXX_WXXXMetatool 有两种类型:一种是 MAUIMetaTool,用来读和修改 modem 的 nvram 数据。另一种是 SP_META,用来读和修改 androidapp 端的 nvram 数据。Nvram 数据读取方式:首先,选择这正确的 tool;然后通过 usb 把电脑和手机连起来,再点击 optionmenu 中的 connecttosmartphone,开机,手机会进入 metamode;最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论