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

 

static struct cpufreq_frequency_table default_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 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值