android开发经验和开发环境注意事项

一. 开发环境注意事项

用elipse开发的时候,开始只要用eclipse导入就会编译不过,提示class R 重定义了,原因是因为elipse导入android工程后会自动生成R.java,所以只要删除gen文件夹就可以了,如:

gingerbread\packages\apps\InternetTv\下的gen文件夹

二. Google weather APK

详见http://www.eoeandroid.com/thread-42450-1-1.html

三. Tablelayout 布局

Java中定义位置:setGravity(Gravity.RIGHT/LEFT/ CENTER_HORIZONTAL….)

如下:

TableRow row = new TableRow(this);

row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,

LayoutParams.WRAP_CONTENT));

row.setGravity(Gravity.RIGHT);

xml中布局:android:paddingRight=”30px”,设置内容与右边距30px

如下:

<TableLayout

android:id="@+id/table"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:stretchColumns="1,2,3,4"

android:paddingRight="30px"

>

</TableLayout>

五 .修改默认语言,国家,时区

如果你想把语言默认设置成韩语,请做这样的修改:

在device\rockchip\rk29sdk下修改rk29sdk.mk

PRODUCT_PROPERTY_OVERRIDES += \

dalvik.vm.heapsize=48m \

wifi.interface=wlan0 \

wifi.supplicant_scan_interval=15 \

persist.webview.minscale=0.5 \

persist.webview.maxscale=2 \

persist.webview.wml=disable \

product.version=rk29_gingerbread_v1.28_0701 \

EXTERNAL_STORAGE_STATE=removed \

persist.sys.timezone=Asia/Seoul \ // 设置时区 为汉城,默认为中国上海

//如果要在setting中的select timezone增加选项,请在setting 包下的xml的timezone.xml中增加。

persist.sys.language=ko \ // 设置语言

persist.sys.country=KR // 设置国家

请修改这个文件后,编译时请make clean之后,再make。

六 打开wifi

请先解压附件中的压缩包。

1.替换掉 KERNEL目录下的 drivers/net/wireless/rtl8192C/目录。在make menuconfig 中把WIFI驱动设置成 8192C,重新生成KERNEL.IMG

2.屏蔽掉gingerbread\external\wpa_supplicant_6\wpa_supplicant\src\drivers\driver_wext.c文件中的 .combo_scan=wpa_driver_wext_combo_scan,

重新生成 SYSTEM.IMG文件。再重新烧录就可以支持 RTL8188。

七 修改频率

你们板子的死机和横条纹问题可能出在CPU供电电压过低问题或DDR3硬件走线不合格问题上。请按下面方法修改后测试下。

修改 /home/chenxiao/rk_pro/RK2918_R-BOX_SDK_V1.06_110817/itv-kernel-2-2-1/arch/arm/mach-rk29/cpufreq.c

staticstructcpufreq_frequency_tabledefault_freq_table[]={

// {.index=950000,.frequency=204000},

// {.index=1050000,.frequency=300000},

{.index=1200000,.frequency=408000},

// {.index=1125000,.frequency=600000},

// {.index=1200000,.frequency=816000},

{.index=1350000,.frequency=1008000},

//{.index=1250000,.frequency=912000},

//{.index=1250000,.frequency=1008000},

//{.index=1300000,.frequency=1104000},

//{.index=1300000,.frequency=1128000},

//{.index=1325000,.frequency=1152000},

//{.index=1350000,.frequency=1176000},

// {.index=1460000,.frequency=1200000},

{.frequency=CPUFREQ_TABLE_END},

};

如果还是出现这样的情况可以在配置文件中把内存频率降低到406MHz

另外硬件上把R149改为1.5K

八.增加APK应用软件

1.Z:\RK2918_R-BOX_SDK_V1.06_110817\gingerbread\build\target\product目录下修改generic.mk文件,如增加GoogleWeather.apk,就如下:PRODUCT_PACKAGES := \

AccountAndSyncSettings \

DeskClock \

AlarmProvider \

Bluetooth \

Calculator \

Calendar \

Camera \

CertInstaller \

DrmProvider \

Email \

Gallery3D \

Mms \

Music \

Provision \

Protips \

QuickSearchBox \

Settings \

Sync \

SystemUI \

Updater \

Desktop2D_mbx \

VpadMonitor \

CalendarProvider \

FileBrowser \

GoogleWeather \

RockChipsSkypeTest \

CommWebSite \

SyncProvider

2.在Z:\RK2918_R-BOX_SDK_V1.06_110817\gingerbread\device\rockchip\sdkDemo\apk目录下增加相应的apk文件

九 预装APK注意事项

你好,对于您提到的预安装apk的问题,情况是这样的: 对于那种需要通过调用其他动态库.so的apk(通常的情况是通过jni调用C或者C++代码),预安装通常会出现问题,因为预安装apk时,您的工程中存放动态库的目录没有该apk需要的.so文件,因而一旦点击这些预安装的图标,就会出现装载so文件失败的情况,表现在UI上就是图标一闪而过,什么都不执行或者报错。与预安装不同,手动安装时,安装器会获取apk的信息,当该apk中存有.so的动态库时,会主动将so拷贝到存放动态库的目录。如果您想预安装这些需要装载动态库的apk时,必须手动将so拷贝出来,然后放到out\target\product\rk29sdk(sdkDemp)\system\lib下。

提取apk的.so的方法为:在串口中切换到apk的目录下,以skeype为例,敲入cd /data/data/com.rk.skype/,这儿com.rk.skype为包名,可以看到这个目录下有个lib文件夹,进入这个文件夹会发现libSkypeKitVideoDemo.so ,

这个就是RockchipsSkypeTest.apk在加载时需要用到的动态库。拷贝时,请参考以下命名:busybox cp libSkypeKitVideoDemo.so /flash/ ,这里是将libSkypeKitVideoDemo.so 拷贝到flash中,然后你就可以将libSkypeKitVideoDemo.so 放入到out\target\product\rk29sdk(sdkDemp)\system\lib了,然后再生成的固件就可以了,对于其他需要加载动态库的apk,也需要这样处理。

十.修改About R-Box选项中版本显示相关

Model number ,kernel Version, Build number的显示在

gingerbread\packages\apps\Settings\src\com\android\settings目录下的

DeviceInfoSettings.java文件中,如下地方修改:

setStringSummary("device_model", "123iTV");//Build.MODEL);//Jason wang

setStringSummary("build_number", PRODUCT_VERSION);//+"\n")+Build.DISPLAY);//Jason wang

及private String getFormattedKernelVersion()函数中可修改对应的版本信息,也可在相应的mk文件中改版本信息

十一。删除display,默认成hdmi,1080P 60Hz输出

因本来就是默认hdmi,1080p输出,所以只需在

gingerbread\packages\apps\Settings\res\xml目录下,把

display_settings.xml文件中的display布局删除即可

即删掉如下部分:

<!--Display interface and mode Settings

<PreferenceScreen

android:title="@string/display_output_settings"

android:summary="@string/display_output_settings_summary">

<intent

android:action="android.intent.action.MAIN"

android:targetPackage="com.rockchip.displayoutputsettings"

android:targetClass="com.rockchip.displayoutputsettings.DisplayOutputSettings" />

</PreferenceScreen-->

十二 不显示notifications下的“no service”

在gingerbread\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar目录下的CarrierLabel.java文件中,删掉如下红色部分

if (something) {

setText(str.toString());

} else {

//setText(com.android.internal.R.string.lockscreen_carrier_default);//Jason wang

}

十三 keypad map

在gingerbread\device\rockchip\sdkDemo\proprietary\internettv下有个qwerty.kl;

十四 修改动态图片anim

直接在drawable里替换图片,然后在res/anim 下调用对应图片

1. 如:<?xml version="1.0" encoding="utf-8"?>

2. <set xmlns:android="http://schemas.android.com/apk/res/android" >

3. <alpha

4. android:fromAlpha="0.1"

5. android:toAlpha="1.0"

6. android:duration="3000"

7. />

8. <!-- 透明度控制动画效果 alpha

9. 浮点型值:

10. fromAlpha 属性为动画起始时透明度

11. toAlpha 属性为动画结束时透明度

12. 说明:

13. 0.0表示完全透明

14. 1.0表示完全不透明

15. 以上值取0.0-1.0之间的float数据类型的数字

16.

17. 长整型值:

18. duration属性为动画持续时间

19. 说明:

20. 时间以毫秒为单位

十五 修改内存512显示补丁

在\itv-kernel-2-2-1\fs\proc下替换meminfo.c文件

十六 更新后的代码可修改scale

更新代码后,只要修改BoardConfig.mk 中定义的BOARD_DEFAULT_SCREEN_SCALE 即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值