android開發經驗和開發環境注意事項

來源:互聯網
上載者:User

 

 

一.      開發環境注意事項

 

用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 即可

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.