当前位置:文档之家› MTK ANdroid开发

MTK ANdroid开发

MTK ANdroid开发
MTK ANdroid开发

1.拷贝代码仓库从git@19

2.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 device:查看当前的链接的设备情况

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_defaul t_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在其中加入我们修改的壁纸的wallpaperName 即可。

c.动态壁纸:

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

name=”default_wallpaper_component”>com.android.wallpaper/.nexus.Nex usWallpaper

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

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

drawablename

framework internalbuildAndroid SDK

apk的方式声明为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-*dpil ockwallpaper.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

true

//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

true

32. .9.png图片制作

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

33. 如何去掉状态栏和标题栏

修改对应的Activity,添加以下代码:

final Window win = getWindow();

win.setFlags(https://www.doczj.com/doc/753326306.html,youtParams.FLAG_FULLSCREEN, https://www.doczj.com/doc/753326306.html,youtParams.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/engineerm ode/EngineerModeReceiver.java

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

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

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

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

android:host="3646633" />

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

高通android平台开发

问题描述: 对于有过开发高通android系统的人来说,获取代码构建开发环境并不是难事,但对于刚刚接触这一块内容的人,如果没有详细的说明很容易走弯路,本文档就是根据本人的实践总结的一些经验教训。 1.代码获取 高通的android代码分为两部分,一部分是开源的,可以从网站https://https://www.doczj.com/doc/753326306.html,/xwiki/bin/QAEP/下载,需要知道要下载的代码的分支及build id。另一部分是非开源的,需要从高通的另一个网站https://https://www.doczj.com/doc/753326306.html,/login/上下载,这个下载是有权限限制的,晓光的帐号可以下载代码。后面这部分代码需要放到第一部分代码的vendor指定目录下,可能是vendor/qcom-proprietary或vendor/qcom/proprietary,根据版本的不同有所区别。 高通平台相关的东西基本都在vendor/qcom/proprietary下或device/qcom下 2.编译环境构建(ubuntu 10.04 64位) Android2.3.x后的版本需要在64位下进行编译 更新ubuntu源,要加上deb https://www.doczj.com/doc/753326306.html,/ lucid partner 这个 源用来安装java。 apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev x11proto-core-dev libx11-dev libxml-simple-perl sun-java6-jdk gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs lib32z-dev lib32readline5-dev 研发主机不能更新java,需要让IT安装sun-java6-jdk。 在命令行执行sudo dpkg-reconfigure dash 选择no,否则编译时会报一下脚本语法错误 编译的过程中https://https://www.doczj.com/doc/753326306.html,/xwiki/bin/QAEP/和版本的 release notes中都有介绍,首先source build/envsetup.sh,然后choosecombo选择需要的选项,最后make或make –j4。-j4用来指定参与编译的cpu个数,指定了编译会快些。编译单个模块的时候只需要在make后面跟 上模块的名字 为了简化可以使用以下脚本 export TARGET_SIMULATOR=fasle export TARGET_BUILD_TYPE=release export TARGET_PRODUCT=msm7627a export TARGET_BUILD_VARIANT=eng set_stuff_for_environment make $1 编译的中间结果在out/target/product/平台/obj目录下,有时候为了完全

C语言习题集(预处理命令篇)

第六章预处理命令 6.1 选择题 1.下面叙述中正确的是()。 A. 带参数的宏定义中参数是没有类型的 B. 宏展开将占用程序的运行时间 C. 宏定义命令是C语言中的一种特殊语句 D. 使用#include命令包含的头文件必须以“.h”为后缀 2.下面叙述中正确的是()。 A. 宏定义是C语句,所以要在行末加分号 B. 可以使用#undef命令来终止宏定义的作用域 C. 在进行宏定义时,宏定义不能层层嵌套 D. 对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换 3.在“文件包含”预处理语句中,当#include后面的文件名用双引号括起时,寻找被包含文件的方式为()。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,若找不到,再按系统设定的标准方式搜索 C. 仅仅搜索源程序所在目录 D. 仅仅搜索当前目录 4.下面叙述中不正确的是()。 A. 函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的 字符替换 B. 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进 行的,在展开时也要分配内存单元,进行值传递 C. 对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问 题,宏没有类型 D. 调用函数只可得到一个返回值,而用宏可以设法得到几个结果 5.下面叙述中不正确的是()。 A. 使用宏的次数较多时,宏展开后源程序长度增长。而函数调用不会使源程序变长 B. 函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进 行的,在展开时不分配内存单元,不进行值传递 C. 宏替换占用编译时间 D. 函数调用占用编译时间 6.下面叙述中正确的是( )。 A. 可以把define和if定义为用户标识符 B. 可以把define定义为用户标识符,但不能把if定义为用户标识符 C. 可以把if定义为用户标识符,但不能把define定义为用户标识符 D. define和if都不能定义为用户标识符 7.下面叙述中正确的是()。 A.#define和printf都是C语句 B.#define是C语句,而printf不是 C.printf是C语句,但#define不是 D.#define和printf都不是C语句

A20_Android开发手册_V1[1].0

C o n f i d e n t i a l A20Android 开发手册 V 1.0 2013-02013-03 3-15

C o n f i d e n t i a l Revision History Version Date Section/Page Changes 1.0 2013-03-15 初始版本

C o n f i d e n t i a l 目录 一、A20概述 (4) 1.1A20主控介绍.....................................................................................................................51.2外围设备介绍.....................................................................................................................51.3软件资源介绍.....................................................................................................................5二、建立开发环境. (5) 2.1硬件资源............................................................................................................................62.2软件资源. (6) 2.2.1安装JDK (ubuntu12.04).....................................................................................62.2.2安装平台支持软件(ubuntu12.04).....................................................................62.2.3安装编译工具链(ubuntu12.04).........................................................................62.2.4安装phoenixSuit (windows xp )........................................................................72.2.5其他软件(windows xp ).. (7) 三、源码下载 (8) 3.1wing 源码下载....................................................................................................................83.2仓库的目录树.. (8) 3.2.1android 目录树.........................................................................................................83.2.2lichee 目录结构.. (9) 3.2.2.1buildroot 目录结构........................................................................................93.2.2.2linux-3.3目录结构......................................................................................103.2.2.3u-boot 目录结构..........................................................................................113.2.2.4tools 目录结构............................................................................................123.2.2.5boot 目录结构 (12) 四、编译和打包 (13) 4.1源码编译 (13) 4.1.1lichee 源码编译......................................................................................................134.1.2android 源码编译...................................................................................................134.2打包固件.. (13) 4.2.1完全打包...............................................................................................................134.2.2局部打包 (14) 五、固件烧写 (14) 5.1使用PhoenixSuit 烧写固件.............................................................................................145.2使用fastboot 更新系统 (14) 5.2.1进入fastboot 模式.................................................................................................145.2.2fastboot 命令使用.. (15) 六、recovery 功能使用 (15) 6.1键值的查看......................................................................................................................156.2按键选择..........................................................................................................................166.3功能使用..........................................................................................................................16七、调试 (17) 7.1调试apk...........................................................................................................................177.2调试linux 内核. (17)

软件开发培训学校哪家好

下面向打算学习软件开发的同学介绍一下软件开发培训机构的 相关情况。大家找软件开发培训学校无外乎就是师资力量,学校环境,就业服务等这几个方面,但是我们在选择学校的时候如何来判断呢哪些软件开发培训机构是靠谱的呢?下面给大家几点建议。 一般优秀的软件培训机构强大师资、良好的口碑、优质的就业服务以及学校环境等这几个方面作为参考。 强大的师资:俗话说,名师出高徒,优秀的老师带出来的学生自然也不会差,所以我们在选择学校的时候师资必须是首要考虑的。比如师资学历背景、教学经验、授课风格等。如果是条件允许的话,建议自己同学们到学校先去试听,现在很多软件开发培训学校都有试听课程,比如北大青鸟佳音校区软件开发学校每周六日都有试听课程,

大家感兴趣的话可以与在线老师联系到学校试听。 良好的口碑:一所优秀的学校自然与口碑是分不开的,比如北大清华是大家公认最好的学校,没有人说北大清华不好。那么软件培训机构同样也是这个道理,比如北大青鸟办学十多年来,一直享有良好的口碑,10个学习软件开发的同学,基本上有7-8个会选择到北大青鸟学习。 学校环境以及就业服务:学校环境对我们学习有帮助,比如学习氛围、教学设备等这些都衡量一所学校环境好与差的标准,这方面比较直观,可以到学校参观就能了解到。至于就业服务这个是最重要的,学习的目的就是为了就业,就以北大青鸟为例,为了让学员更好的就业,北大青鸟推出三重就业保障服务:北大青鸟总部设有人才合作部门,负责优秀学员和指导各中心推荐工作;同时在北京、深圳、上海、大连都设有就业基地,负责学员在这些区域内的就业推荐工作;而且在每中心有专门的就业老师,根据学员的就业意向在庞大的就业体系,和众多的合作企业中为每一位合格的学员,找一份合适的工作。

Android开发规范参考文档

Android开发参考文档 一、Android编码规范 1. java代码中不出现中文,最多注释中可以出现中文.xml代码中注释 2. 成员变量,局部变量、静态成员变量命名、常量(宏)命名 1). 成员变量: activity中的成员变量以m开头,后面的单词首字母大写(如Button mBackButton; String mName);实体类和自定义View的成员变量可以不以m开头(如ImageView imageView,String name), 2). 局部变量命名:只能包含字母,组合变量单词首字母出第一个外,都为大写,其他字母都为小写 3). 常量(宏)命名: 只能包含字母和_,字母全部大写,单词之间用_隔开UMENG_APP_KEY 3. Application命名 项目名称+App,如SlimApp,里面可以存放全局变量,但是杜绝存放过大的实体对象4. activity和其中的view变量命名 activity命名模式为:逻辑名称+Activity view命名模式为:逻辑名称+View 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 5. layout及其id命名规则 layout命名模式:activity_逻辑名称,或者把对应的activity的名字用“_”把单词分开。

命名模式为:view缩写_模块名称_view的逻辑名称, 用单词首字母进行缩写 view的缩写详情如下 LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:ib Button:btn 6. strings.xml中的 1). id命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称,strings.xml中,使用activity名称注释,将文件内容区分开来 2). strings.xml中使用%1$s实现字符串的通配,合起来写 7. drawable中的图片命名 命名模式:activity名称_逻辑名称/common_逻辑名称/ic_逻辑名称 (逻辑名称: 这是一个什么样的图片,展示功能是什么) 8. styles.xml 将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 9. 使用layer-list和selector,主要是View onCclick onTouch等事件界面反映

全国最好的软件测试培训机构是哪家

许多IT企业中,软件测试并非只担当“挑错”的角色,其重要性不亚于软件的开发环节。据资料显示,在国外大多数软件公司,1个软件开发工程师便需要辅有1个软件测试工程师。前微软亚洲研究院博士、软件测试专家陈宏刚表示,在很多大型的软件开发项目中,软件测试绝对不是开发活动完成后的“收尾”工作,甚至会占据整个项目周期一半以上的时间。以IE4.0为例,代码开发时间为6个月,而稳定程序花去了8个月的时间。 从投入的资金和人力物力来看,测试、使产品稳定和修改花去的时间占到整个项目时长的80%。而微软开发Windows2000操作系统的过程更历时3年,投入50亿美元,使用了250名项目经理、1700名软件开发工程师、3200名软件测试工程师。发,让测试更高效。 千锋教育10大课程竭力助攻多维测试增大就业选择面 依托成熟的项目素材及教学案例,千锋10大IT课程为软件测试提供了多维实战环境,

学员拥有更多就业选择权(公司、行业、平台)。直切企业核心需求薪资稳增50%以上。从前台到后台,从PC端到移动端,全方位囊括企业各式需求。 软件测试最高境界:精通测试,懂开发! 非普通意义上的开发,而是完全服务于测试的开发,开发,让测试更高效。 终极大咖如约而至神秘讲师惊喜降临 身份之迷即将揭晓,业内传奇共同见证,这一次,报名就是赚到,因为你将享受BAT 测试工程师待遇 王老师百度联想企培负责人 10年以上年从业经验,硕士学位,曾任某上市集团测试部门主管,中航集团开发部技术主管,具备多年开发及测试工作经验。在性能测试、自动化测试及软件质量管理等方面的人才培养上具有较高的建树。 李老师百度钱包移动端测试负责人 精通Java、Oracle、SQLServer等多种主流编程语言和数据库系统。对Java底层原理有深入研究。拥有大量项目经验,多次参与移动端项目的测试开发,熟悉软件从项目开发、

Android4.0开发环境搭建

Android开发环境搭建 在网上找各种解决办法,无奈,都是互相转帖,要错大家一起错,而且都是老版本的安装方法,虽然没有太大差别,但小的差异还是搞得人很头痛,因为有时候就是一点不同就要找好长时间解决方法,我现在把我的安装历程发布出来,供大家分享,当然版本再更新的话我也不能保证就完全正确,只能保证现在的版本完全没问题。因为现在的android版本与原来的版本有一定的区别,所以我在2.2的基础上改了一下,现在可以安装到4.0 安装JDK 这个在上一篇中已经介绍过了,注意JDK的版本为1.5或者1.6都可以就行了,推荐使用1.6版本,因为它要比以前快得多。还有JAVA_HOME的设置。用set JAVA_HOME命令检查一下就行了。 SDK 4.0安装 今年Google离开大陆,导致登陆他们的网站会比较麻烦,一般情况下是登陆不上去的,需要翻墙,大家都懂的,我不多说,如果能登上 https://www.doczj.com/doc/753326306.html,/sdk/index.html那是最好,如果登不上也没关系,能下的地方好多,上百度上搜有很多,而且下载都很快,我下载的是 android-sdk_r07-windows.zip,一下安装也是以它为例。 下载好后,随便解压到一个地方,目录结构如图所示:

此处SDK Manager.exe和以前版本略有区别,以前是SDK Setup.exe,功能都一样,双击它。(我们下载的也不是完整的SDK,只是一个安装SDK的工具) 双击之后我们会看到如下的界面: 左侧是我们要安装的SDK目录,如果你的网络够快而且空间不是特别少的话,选择Accept All,然后Install,开始漫长的在线安装:

编译预处理

第九章编译预处理 9.1 选择题 【题9.1】以下叙述中不正确的是。 A)预处理命令行都必须以#号开始 B)在程序中凡是以#号开始的语句行都是预处理命令行 C)C程序在执行过程中对预处理命令行进行处理 D)以下是正确的宏定义 #define IBM_PC 【题9.2】以下叙述中正确的是。 A)在程序的一行上可以出现多个有效的预处理命令行 B)使用带参的宏时,参数的类型应与宏定义时的一致 C)宏替换不占用运行时间,只占编译时间 D)在以下定义中C R是称为“宏名”的标识符 #define C R 045 【题9.3】请读程序: #define ADD(x) x+x main() { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum); } 上面程序的运行结果是。 A)sum=9 B)sum=10 C)sum=12 D)sum=18 【题9.4】以下程序的运行结果是。 #define MIN(x,y) (x)<(y)?(x):(y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf(“%d\n”,k); } A)10 B)15 C)100 D)150 【题9.5】在宏定义#define PI 3.14159中,用宏名PI代替一个。 A)常量B)单精度数C)双精度数D)字符串

【题9.6】以下程序的运行结果是。 #include #define FUDGE(y) 2.84+y #define PR(a) printf(“%d”,(int)(a)) #define PRINT1(a) PR(a); putchar(‘\n’) main() { int x=2; PRINT1(FUDGE(5)*x); } A)11 B)12 C)13 D)15 【题9.7】以下有关宏替换的叙述不正确的是。 A)宏替换不占用运行时间B)宏名无类型 C)宏替换只是字符替换D)宏名必须用大写字母表示 【题9.8】C语言的编译系统对宏命令的处理是。 A)在程序运行时进行的 B)在程序连接时进行的 C)和C程序中的其它语句同时进行编译的 D)在对源程序中其它成份正式编译之前进行的 【题9.9】若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf语句后,输出结果是。 int a; a=Y; printf(“%d\n”,Z); printf(“%d\n”,--a); A)7 B)12 C)12 D)7 6 6 5 5 【题9.10】若有以下宏定义如下: #define N 2 #define Y(n) ((N+1)*n) 则执行语句z=2*(N+Y(5));后的结果是。 A)语句有错误B)z=34 C)z=70 D)z无定值 【题9.11】若有宏定义:#define MOD(x,y) x%y 则执行以下语句后的输出为。 int z,a=15,b=100; z=MOD(b,a); printf(“%d\n”,z++);

基于Android平台的浏览器开发与实现

中国地质大学 毕业设计(论文)开题报告 题目:基于Android平台的浏览器开发与实现 学院:机电学院 专业:通信工程 班级:075083班 学号:858 姓名:许磊 指导教师:张晓峰 日期:2012 年 2 月29 日

一、选题的依据及意义: 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。 浏览器是网民进入互联网的第一窗口,让用户能够快速的访问自己所需要的信息,如小说、新闻、音乐、视频、体育赛事、天气情况、股市行情等。如今,手机浏览器不仅仅是一种网络应用程序,也逐渐成为一种网络应用平台。各种网络应用基本都可以在浏览器上实现,所以被用户广泛接受成为各大浏览器厂商的最主要目标。 研究本课题的意义是让用户有一个快速的上网浏览入口,给用户一个界面友好,功能强大,易于操作,便于管理的浏览器。同时也让自己更加熟悉Android 应用程序的开发,了解Android应用程序开发的流程,各个模块之间的联系。 二、国内外研究现状及发展趋势: Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的30多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。 经过多年的发展,第三代数字通信( 3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Android用户也逐渐增加,根据发展趋势,Android将成为第一大智能手机平台。 浏览器作为用户访问网络的窗口,各大厂商也相继推出了自己的浏览器,如

c语言中预编译指令的应用

#if #ifdef和#ifndef的用法和区别 #if #ifdef和#ifndef用法 移位运算符的优先级高于条件运算符,重载是不能改变运算符优先级的,这点要注意,所以代码应当像下面这样调整,写宏的时候一定要注意优先级,尽量用括号来屏蔽运算符优先级。#define MAXIMUM(x,y) ((x)>(y)?(x):(y)) #define MINIMUM.... #include #define MAX #define MAXIMUM(x,y) x>y?x:y #define MINIMUM(x,y) x

安卓开发环境搭建完全手册

安卓开发环境搭建完全手册 小安:博士,刚才听你说了这么多,我感觉Android平台真是前景无限,决定要从事Android开发,成为一名Android高手。今后请您多多指教! 大致:小安,我代表全体Android开发人员欢迎你加入Android开发的队伍,现在我就告诉你开发Android需要准备些什么。 1.1准备所需软件 1.1.1Android开发需要的工具 1)JDK5或JDK6 需要注意的是仅有JRE是不够的。JRE是Java的运行环境,而JDK不仅包含了JRE,还包含了我们开发Java程序所需要的工具集合。 JDK可以到:https://www.doczj.com/doc/753326306.html,/javase/downloads/index.jsp页面下载。 2)Eclipse3.5 使用MyEclipse也可以,但由于MyEclipse是收费的并且插件较多影响运行速度,因此不建议采用。Eclipse是一个开放源代码的、基于Java的可扩展的集成开发环境(IDE)。Eclipse中可以集成进多种插件,以完成特定语言的开发。 下载地址:https://www.doczj.com/doc/753326306.html,/downloads/页面中的EclipseIDEforJavaEEDevelopers链接。 3)Android SDK: SDK是我们开发Android应用程序的软件开发工具包。 下载地址:https://www.doczj.com/doc/753326306.html,/android/android-sdk_r05-windows.zip 4)Eclipse的插件ADT(Android Development Tools)

Android开发工具(ADT)是一个为EclipseIDE设计的旨在提供一个强大的、集成的环境来建立Android 应用程序的插件。ADT扩展了Eclipse的功能,可以快速建立新的Android项目,创建一个应用程序界面。它添加了基于Android框架API的组件,使用AndroidSDK工具调试你的应用程序,甚至导出签名(或未签名)APKs以分发你的应用程序。在Eclipse中强烈建议使用ADT进行开发,ADT提供了令人难以置信的提高开发Android应用程序的效率。 下载地址:https://www.doczj.com/doc/753326306.html,/android/ADT-0.9.5.zip 准备好这些工具,我们就可以安装这些软件来搭建Android的开发环境了。有一点需要注意,以上的链接部分会由于官方的更新而产生变动,有时下载到的版本不同,但下载的方式如此,如果遇到问题可以参考官方帮助文档 1.2安装所需的软件 1.2.1.安装JDK6 1.找到JDK安装文件,双击运行,界面如下:

Android简单的登陆界面的设计开发

通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名: 实训内容: 一.1.Andriod的简介 Android。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 二.1软件下载 Android SDK,网址是 . JDK的下载地址。 Eclipse的下载网址是 第一步:下载Android SDK 网址是 选择"Available Packages",选择想安装的版本(我是全选了,省事),然后单击“Install Selected”->选择“Accept All”,再单击“Install Accepted”就可以在线安装了。 第二步:安装JDK A下载JDK。Android SDK需要JDK5 以上的版本。JDK6的下载地址。 B安装JDK。下载完成后进行正常双击、安装,这里就不说了。。。 C配置Java环境变量 1配置Java Home。复制Java的安装路径,右键单击“我的电脑”->“属性”->“高级”—>“环境变量”中新建环境变量java_home,变量值为java安装路径。 2配置Path。右键单击“我的电脑”->“属性”->“高级”—>“环境变量”,在“系统环境变量”中编辑Path便来了个,添加Java的bin目录到其中。变量与变量中间使用分号“;”分隔。 3配置classpath。右键单击“我的电脑”->“属性”->“高级”—>“环境变量”,在“系统环境变量”中新建一个系统变量名称为“classpath”,变量值为半角句号“.” 第三步:下载Eclipse

Android开发入门文档 v1.1

RK28平台技术文档 Android 开发入门 部 门: 内核组 版 本: V1.1 作 者: 陈美友 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 日 期: 2008-12-1 关键字 Linux 、Android 、Native C/C++、编译、下载 概 述 本文档主要讲述了Android 的下载、编译,以 及本地C/C++程序的开发、Android 应用程序 的开发等… 本文档适用了Android 开发的初学者

目录 下载ANDROID源码 (3) 编译ANDROID源码: (4) 编译ANDROID中的LINUX内核: (5) 编译NATIVE C/C++程序 (6) 运行NATIVE C/C++应用程序 (7) 在WINDOWS XP操作系统上构建ANDROID应用程序开发环境 (8) 编写ANDROID应用程序 (9) ANDROID SDK文件夹结构分析 (9) ANDROID源代码结构 (10) ANDROID应用程序生成 (10)

注: 如果你要创建Android的SDK,那么你必须安装JDK5,不要安装JDK6 $sudo apt-get install sun-java5-jdk 如果你使用apt-get下载安装程序时,发现某些安装包无法下载的情况, 那么你可以从网络上其它地方用其它的工具下载安装包,然后进行安装。我 通常是通过Windows上的迅雷下载,然后通过VMware中的文件共享传到Linux系统中。 我的电脑: 主系统:Windows XP 模拟器安装在Windows XP上 VMware中安装Linux:Ubuntu8.10 Android源码存放路径:~/mydroid 下载Android源码 在这里面以Ubuntu(x86)操作系统为例,说明下载Android的步骤: 下载必要工具: 下载GIT工具: $ sudo apt-get install git-core gnupg 下载JDK6: $ sudo apt-get install sun-java6-jdk 下载下列工具包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 下载Valgrind工具(可选): $ sudo apt-get install valgrind 安装Repo工具: 创建目录存放Repo: $ cd ~ $ mkdir bin $ export PATH=~/bin:$PATH 下载Repo: $ curl https://www.doczj.com/doc/753326306.html,/repo >~/bin/repo

大数据培训去哪个机构好

大数据培训去哪个机构好 大数据的火爆引来了一众学子的青睐,学习大数据的人随之增多,大数据学习你得知道大数据培训机构哪个好,只有在好的培训机构里接受培训你才能获得更好的知识,当然小编今天要说的不仅是大数据培训机构哪个好,还有一些大数据入门之前的知识小编也要为你普及。 大数据培训机构哪个好 要说大数据培训机构,那可是数都数不过来,但是,是金子总会发光,好的大数据培训机构必定会发扬光大,千锋教育就是一家在业内口碑非常不错的培训机构。 千锋教育大数据培训机构专注高学历IT职业教育,是中国IT职业教育领先品牌,它拥有众多实战派讲师,金牌讲师齐聚,主流巨擘带你引领大数据时代,在千锋教育大数据培训机构高薪就业并不是口号,千锋就业学员以行业最高薪资稳居榜首,并不是偶然,是经过教学+教研+项目指导+高强度训练锻炼出来的。 千锋教育大数据培训机构200余位业内强师100%全程面授,名师虽贵绝不省人工,面授虽繁必不减品质。以实战项目做指导,手把手纯面授,面对面现场教学。同时论坛辅导,上课资料录制,方便学生课后复习。严格保障教学质量等等这些都是千锋教育的发光点。进入千锋教育,深入了解它,你会发现这些只

是很小的一部分。 学习大数据要了解的问题 什么是大数据? 所谓大数据,麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。 大数据技术的应用? 随着企业开始利用大数据,我们每天都会看到大数据新的奇妙的应用,帮助人们真正从中获益。大数据的应用已广泛深入我们生活的方方面面,涵盖医疗、交通、金融、教育、体育、零售等各行各业。 大数据培训机构哪个好?当选千锋教育。

1 Android系统简介及开发环境的搭建

1了解Android系统 1.1 Android系统介绍 Android是Google 开发的基于Linux 平台的、开源的、智能手机操作系统。Android 包括操作系统、中间件和应用程序,由于源代码开放,Android 可被移植到不同的硬件平台上。 围绕在Google的Android 系统中,形成了移植开发和应用程序开发两个不同的开发方面。手机厂商从事移植开发工作,应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。 作为一个手机平台,Android 在技术上的优势主要有以下几点: ●全开放智能手机平台 ●多硬件平台的支持:应用程序可通过标准API访问核心移动设备功能。 ●使用众多的标准化技术:可以轻松的嵌入HTML、JavaScript等网络内容 ●核心技术完整,统一:应用程序是平等条件创建的,可被替换或扩展。 ●应用程序可以并行运行。Android是完整的多任务环境,在后台运行时,应用程 序可生成通知引起用户注意。 ●完善的SDK 和文档 ●完善的辅助开发工具 Android 的开发者可以在完备的开发环境中进行开发,Android 的官方网站也提供了丰富的文档、资料。这些都使得Android 系统的开发和运行在一个良好的生态环境中。 1.2 Android系统的软件结构 Android 是一个开放的软件系统,它包含了众多的源代码。从下至上,Android 系统分成4个层次: ●第1 层次:Linux 操作系统及驱动; ●第2 层次:本地代码框架,包含各种类库和运行环境; ●第3 层次:Java 框架; ●第4 层次:Java 应用程序。 Android 的第1 层次由C 语言实现,第2层次由C 和/C++实现,第3、4层次主要由Java代码实现。对于Android 应用程序的开发,主要关注第3层次和第4层次之间的接口。 Android 系统的架构如图所示:

c语言预处理命令之条件编译(ifdefelseendifif等)

C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等) 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令: 指令用途 #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifdef如果宏已经定义,则编译下面代码 #ifndef如果宏没有定义,则编译下面代码 #elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 #endif结束一个#if……#else条件编译块 #error停止编译并显示错误信息 一、文件包含 #include预处理指令的作用是在指令处展开被包含的文件。包含可以是多重的,也就是说一个被包含的文件中还可以包含其他文件。标准C编译器至少支持八重嵌套包含。

预处理过程不检查在转换单元中是否已经包含了某个文件并阻止对它的多次包含。这样就可以在多次包含同一个头文件时,通过给定编译时的条件来达到不同的效果。例如: #defineAAA #include"t.c" #undefAAA #include"t.c" 为了避免那些只能包含一次的头文件被多次包含,可以在头文件中用编译时条件来进行控制。例如: /*my.h*/ #ifndefMY_H #defineMY_H …… #endif 在程序中包含头文件有两种格式: #include #include"my.h" 第一种方法是用尖括号把头文件括起来。这种格式告诉预处理程序在编译器自带的或外部库的头文件中搜索被包含的头文件。第二种方法是用双引号把头文件括起来。这种格式告诉预处理程序在当前被编译的应用程序的源代码文件中搜索被包含的头文件,如果找不到,再搜索编译器自带的头文件。 采用两种不同包含格式的理由在于,编译器是安装在公共子目录下的,而被编译的应用程序是在它们自己的私有子目录下的。一个应用程序既包含编译器提供的公共头文件,也包含自定义的私有头文件。采用两种不同的包含格式使得编译器能够在很多头文件中区别出一组公共的头文件。

相关主题
文本预览
相关文档 最新文档