1.拷贝代码仓库 从git@192.168.1.3:a89.git 到work目录下:
cbk@YCS:~/work$ ll
cbk@YCS:~/work$ rm -rf a89/
cbk@YCS:~/work$ cd ..
cbk@YCS:~/work$ git clonegit@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.编译具体app sudoku,源码文件包位于..\package\app\sudoku,命令为:
       ./mk mm package/app/sudoku
 
5.设置eclipse选择启动不同的AVD设置方式:
          eclipse中右击指定app文件夹、选择Run as->Run configrations,弹出界面选择Target项,选择指定的AVD。(debug方式类似设置)

6.adb 命令
        adb devices                  查看当前的链接的设备情况
        adb logcat >my.log       打印当前的log记录到文件 my.log中

7.adb无法启动问题分析:
      adb kill-server,然后adb –startserver

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下载时候提示preload usb vcom port驱动没有安装,需要安装指定路径:

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.屏幕上锁屏界面背景图片:
    若是 mtk slide lock screen, 可替换下面文件修改锁界面时背景图片
    \mediatek\source\frameworks\banyan\res\res\drawable\lockscreen_default_wallpaper.png
    若是 android default lock screen, 可替换下面文件修改锁界面时背景图片
    \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文件中找到<string         name=”default_wallpaper_component”>@null</string>,修改为
  <string name=”default_wallpaper_component”>com.android.wallpaper/.nexus.NexusWallpaper</string>
  其中com.android.wallpaper/.nexus.NexusWallpaper,”/”前为包名,后为类名
  备注:如果要将内置到系统中的无source code的第三方动态壁纸程序设置为默认动态壁纸,则需要知道该apk中  WallpaperService对应的类名和包名,可以通过Google提供的apk-tool工具来得到该apk的资源文件,那么就可以通过查看  AndroidManifest.xml文件去查找到对应的Wallpaper Service的类名和包名。

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_yuv gc0309_yuv #ov5647_raw hi704_yuv
  CUSTOM_HAL_MAIN_IMGSENSOR=hi253_yuv #ov5647_raw
  CUSTOM_HAL_SUB_IMGSENSOR=gc0309_yuv #hi704_yuv
 
  CUSTOM_KERNEL_IMGSENSOR=hi253_yuv gc0309_yuv #ov5647_raw hi704_yuv
  CUSTOM_KERNEL_MAIN_IMGSENSOR=hi253_yuv #ov5647_raw
  CUSTOM_KERNEL_SUB_IMGSENSOR=gc0309_yuv #hi704_yuv

16. 请教,android中如果修改了资源文件,如res/values/string.xml文件中的内容,那么如何编译生效?我将该模块重新编译了一下如  mmm path/module-name, 但是好像没有生效

   删掉生成的jar包就OK了。具体在 out/target/common/obj目录下
   ./mk k6 mm packages/apps/Launcher2
   删除apk文件alps\out\target\product\k6\system\app
   ./mk systemimage

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
   具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

19.如何分别配置基线工程和特定项目的开关、代码:
   需要被所有工程用到的代码或配置放在以下目录:
   mediatek/customer/common
   mediatek/config/common
   只被一个专用工程用到的配置和代码应该放在什么位置?
   mediatek/customer/$project$
   mediatek/config/$project$
   具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

20.如何共享含很多Linux软链接的代码工程给他人:
解压代码包后,里面有很多linux的软链接并且编译后也会生成很多软链接,如何将代码复制给其他人,并且也可以正常编译很重要。
禁止以下方法压缩软件:
1. 不能在windows下用压缩软件压缩或用复制粘贴的方式
2. 不能再linux下用右键压缩的方法压缩代码;以上方式都是使链接失效。
正确的方法是:tar czfv <project_name>.tar.gz alps
其中<project_name>为任意名字,最好是项目+版本的命名方式,alps为源代码目录,已当前要压缩的目录为准。

21. 编译用户版软件(User Build)的命令是什么
./makeMtk -opt=TARGET_BUILD_VARIANT=user ${project name} new
${project name}为客户的工程名

22. GCC工具链
GCC:(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。

GCC工具链:

23.android不同版本代号含义(GB, GB2, ICS, ICS2,JB)
Android V2.3 (GB, GB2)
Android V4.0 (ICS, ICS2) : 冰淇淋
Android V4.1 (JB) : 果冻豆

24. Android2.3 如何将MTK滑动锁屏替换为google默认滑动锁屏:
请修改alps/mediatek/config/project_name/ProjectConfig.mk,将其中的
MTK_LOCKSCREEN_TYPE = 2
修改为
MTK_LOCKSCREEN_TYPE = 1
,修改后请重新build project

25 JB frameowork资源添加新规则
JB版本代码与之前的有点区别,就是在JB中添加framework resource,必须在
alps\frameworks\base\core\res\res\values\Public.xml中声明,才会生成resource ID.
drawable<java-symbol type="drawable" name="xxx" />name

framework internalbuildAndroid SDK
apk<public  type="drawable" name="xxx"/>的方式声明为framework public资源,注意,不需要写id的值,且编译时,需要手动update api。

26. 如何修改默认主题为mtk slicer(纤薄主题)
1 frameworks/base/core/java/android/context/res/Configuration.java SKIN_UNDEFINED
"/system/framework/theme-res-slicer.apk"
2 frameworks/base/libs/utils/AssetManager.cpp openNonAssetString8
themeRes("/system/framework/framework-res.apk");String8 themeRes("/system/framework/theme-res-slicer.apk");
3 mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpilockwallpaper.png
mediatek/source/frameworks/banyan/res/res/drawable lockscreen_default_wallpaper.png
lockscreen_default_wallpaper.png
4 mediatek/source/frameworks/themes/theme-res-slicer/res/drawable-*dpi themewallpaper.png
frameworks/base/core/res/res/drawable default_wallpaper.png default_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(theme name)目录下
添加具体风格所对应的资源,按照已有的app的样式来添加; 同样以Launcher2为例,注意这里的资
源放置路径要跟原始app里面被替换的资源的路径保持一样,资源的名称也要保持一样。

29. 非hdpi项目,状态栏刷新、或者list列表界面等出现显示内容花屏、错乱的情况,是什么原因
MTK release给客户的工程,在75平台、Android V2.3和V4.0的版本上,默认只会build  hdpi资源到系统里,也就是说,alps/meidatek/config/xxx/ProjectConfig.mk中的MTK_PRODUCT_LOCALES  default只加入了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项目如何关闭Navigation Bar:
默认Navigation Bar的控制在 alps/frameworks/base/core/res/res/values/config.xml
<bool name=“config_showNavigationBar”>true</bool>

//6589MTK Demo Project Navigation Bar Resource Overlay Navigation Bar resource overlay:
6589 navigation Bar 最终控制在,会覆盖掉上述设置:
alps/mediatek/custom/project_name/resource_overlay/generic/frameworks/base/core/res/res/values/config.xml
<bool name=“config_showNavigationBar”>true</bool>

32. .9.png图片制作
java的jdk、android的sdk中tools目录下的draw9patch.bat

33. 如何去掉状态栏和标题栏
修改对应的Activity,添加以下代码:
final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);     //remove statusbar
requestWindowFeature(Window.FEATURE_NO_TITLE);
requestWindowFeature(Window.FEATURE_PROGRESS);   //remove titlebar
注意:必须添加在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#*#*
    Uri engineerUri = Uri.parse("android_secret_code://3646633");

alps/mediatek/source/packages/EngineerMode/AndroidManifest.xml
    <receiver android:name=".EngineerModeReceiver">
            <intent-filter>
                 <action android:name="android.provider.Telephony.SECRET_CODE" />
                 <data android:scheme="android_secret_code" android:host="3646633" />
            </intent-filter>
    </receiver>

37. 触屏的震动响应接口
调用native 方法来开启和关闭vibrator:
   native static void vibratorOn(long milliseconds);
   native static void vibratorOff();
调用方法如下:VibratorService.vibratorOn()

38. Database位置和读取方式:
以下是database 的路径(GB2 and ICS 的project):
- MAUI META database is under path:
alps\mediatek\custom\common\modem\ ${Project}\BPLGUInfoCustomApp_MTXXX_S01_MAUI_XXX
- ALPS META database is under path:
alps\mediatek\source\cgen\APDB_MTXXX_S01_ALPS.XXXX_WXXX

Meta tool 有两种类型:
一种是 MAUI Meta Tool, 用来读和修改modem 的nvram 数据。
另一种是 SP_META, 用来读和修改android app 端的nvram 数据。

Nvram数据读取方式:
首先,选择这正确的tool;
然后通过usb 把电脑和手机连起来,再点击option menu 中的connect to smart phone,
开机,手机会进入meta mode;
最后选择nvram editor,来选择正确的database。

39. 如何抓取mobile log
具体查看: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/Debug Configuration...菜单弹出的对话框添加一个Remote Java Application,选择第一步新建的project,使用第二步得到的端口号
4. 请在需要调试的地方设置断点,然后调试

42. 如何确认一个应用程序的安装位置
android:installLocation="internalOnly"
android:installLocation="auto"
android:installLocation="preferExternal">
具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

43. 如何在activity中控制屏幕点亮与关闭
Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。
//启用屏幕常亮功能
PowerManager pm =(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命令/ File Manager文件夹中点击安装
具体查看:MTK_on_line_FAQ_SW_ALPS_20130123.pdf

MTK android系统源码修改快速上手相关推荐

  1. 【Android系统源码修改】修改系统默认定位方式

    gps 移动网络位置信息 gps 修改为 gps,network 或者 network 或者 是否支持gps \frameworks\base\services\core\java\com\andro ...

  2. 【Android系统源码修改】如何内置字体,添加字体文件到system/fonts

    1 添加字体文件 将字体文件复制到frameworks/base/data/fonts/ 2 在Android.mk中添加模块 添加模块后,才能在编译时,把字体拷贝到/system/fonts/ 下 ...

  3. android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?

    点击上方"刘望舒",选择"星标" 多点在看,就是真爱! 作者 :  刘望舒  |  来源 :刘望舒的博客地址:http://liuwangshu.cn/fram ...

  4. android系统源码7.1.2_r8下载,编译,运行到nexus5X上,修改源码并编译SDK进行测试

    一,学习android系统源码下载,编译的作用 1,可以自己 DIY 自己的rom系统,从系统层面,宏观的加深理解 android系统 2,编译自己的 userdebug(原生root权限) rom, ...

  5. Android FrameWork学习(二)Android系统源码调试

    点击打开链接 通过上一篇 Android FrameWork学习(一)Android 7.0系统源码下载\编译 我们了解了如何进行系统源码的下载和编译工作. 为了更进一步地学习跟研究 Android ...

  6. Android FrameWork 学习之Android 系统源码调试

    这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...

  7. Android AOSP基础(三)Android系统源码的整编和单编

    本文首发于微信公众号「刘望舒」 关联系列 Android AOSP基础系列 Android系统启动系列 前言 在上一篇文章Android AOSP基础(二)AOSP 源码下载 中,我们顺利的将AOSP ...

  8. Android系统源码目录及功能介绍

    Android的移植按如下流程:     1.android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     2.正确挂载文件系统,确保内核启动参数和 android 源代码 ...

  9. Android系统源码

    作者:王宇龙 链接:https://www.zhihu.com/question/19759722/answer/29213925 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

最新文章

  1. python数据分析报告的格式_Python数据报表之Excel操作模块用法分析
  2. 大型局域网二层三层结构比较
  3. Django 入门项目案例开发(上)
  4. 898. 子数组按位或操作
  5. vuepc端实现数据加载_多模态注意力机制+多模态数据,完全实现端到端课堂活动检测|ICASSP 2020...
  6. 如何修改myeclipse中web项目的工作路径或默认路径
  7. mysql 时间函数大全_mysql常用的日期函数汇总
  8. 历史数据导出excel_在数据产品中对导出功能的思考
  9. canvas绘制验证码
  10. VM虚拟机里安装Centos
  11. Hibernate集合属性的元素为组件(三)
  12. 【事件驱动】【数码管识别】 封装成DLL的函数的梳理
  13. linux驱动开发(一):一个最简单的内核驱动程序
  14. windows10百度网盘下载,windows iso文件下载
  15. 三维重建开源代码汇总【保持更新】
  16. Exploring Plain Vision Transformer Backbones for Object Detection.
  17. 对标RTX 3060,英特尔独显或将迎来第一波主流游戏玩家
  18. 赵小楼《天道》《遥远的救世主》深度解析(36)丁元英为什么参加芮小丹组的那场文化人的饭局?
  19. android动态开场,看得见的数据结构Android版之开篇前言+完篇总结
  20. 学习爬虫之Scrapy框架学习(3)---豆瓣top250电影完整版信息获取及如何存储到mysql数据库;Scrapy shell和Scrapy选择器;使用到日志的学习!

热门文章

  1. 数据研发工程师面试全过程(个人面试)
  2. Webots学习笔记 1.创建自己的仿真机器人模型
  3. 苹果CMS小俊XG013主题模板下载
  4. 正方教务系统新版php,正方教务系统最新sql注射漏洞修复 | CN-SEC 中文网
  5. L1-078 吉老师的回归
  6. 设计模式3-软件设计原则
  7. 设计模式-合成复用原则-》面向对象设计原则
  8. 拼多多代发商如何一件代发自动下单?
  9. 梦幻新开服务器维护,《梦幻西游2》6月新开服务器公告
  10. PostgreSQL中计算百分位数和中位数