導航:首頁 > 操作系統 > licheeandroid

licheeandroid

發布時間:2023-06-06 18:19:45

android源碼編譯是干什麼

編譯Android系統。

❷ android編譯求助

1、安裝 JDK
2、安裝編譯所需包
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linux-gnueabihf
$sudo apt-get install gcc g++ gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf g++-multilib
$sudo apt-get install cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev wget fakeroot
$sudo apt-get install kernel-package zlib1g-dev libncurses5-dev build-essential
$sudo apt-get install texinfo texlive ccache zlib1g-dev gawk bison flex gettext uuid-dev
$sudo apt-get install ia32-libs git gnupg flex bison gperf build-essential zip
$sudo apt-get install curl libc6-dev x11proto-core-dev libx11-dev:i386 lib32ncurses5-dev
$sudo apt-get install libreadline6-dev:i386 mingw32 tofrodos python-markdown
$sudo apt-get install libxml2-utils xsltproc zlib1g-dev:i386 libgl1-mesa-dev

3、下載 Android 源碼包並解壓,兩個文件:
a20-android4.2_lichee.tar.gz
a20-android4.2_android.tar.gz

4、編譯:
lichee編譯通過,在編譯android時:
source build/envsetup.sh
lunch
選擇的是 sugar_cubietruck-eng
extract-bsp
make -j8

❸ android系統下怎麼廣播鍵盤的輸入消息

1.在lichee/linux-3.0/include/linux/input.h文件可以查看底層驅動的按鍵編碼
#define KEY_F1 59
#define KEY_F2 60
#define KEY_F3 61
#define KEY_F4 62
#define KEY_F5 63
#define KEY_F6 64
#define KEY_F7 65
#define KEY_F8 66
#define KEY_F9 67
#define KEY_F10 68
2.在android4.0/frameworks/base/core/java/android/view/KeyEvent.java文件可以查看上層驅動的按鍵編碼
/** Key code constant: F1 key. */
public static final int KEYCODE_F1 = 131;
/** Key code constant: F2 key. */
public static final int KEYCODE_F2 = 132;
/** Key code constant: F3 key. */
public static final int KEYCODE_F3 = 133;
/** Key code constant: F4 key. */
public static final int KEYCODE_F4 = 134;
/** Key code constant: F5 key. */
public static final int KEYCODE_F5 = 135;
/** Key code constant: F6 key. */
public static final int KEYCODE_F6 = 136;
/** Key code constant: F7 key. */
public static final int KEYCODE_F7 = 137;
/** Key code constant: F8 key. */
public static final int KEYCODE_F8 = 138;
/** Key code constant: F9 key. */
public static final int KEYCODE_F9 = 139;
/** Key code constant: F10 key. */
public static final int KEYCODE_F10 = 140;
3.在/android4.0/frameworks/base/data/keyboards/Generic.kl文件裡面有底層到上層的映射,將這個文件定製到自己的系統android4.0/out/target/proct/crane-m1003h6/system/usr/keylayout目錄下就可以了在上層收到USB鍵盤F1-F10的消息了。
key 59 F1
key 60 F2
key 61 F3
key 62 F4
key 63 F5
key 64 F6
key 65 F7
key 66 F8
key 67 F9
key 68 F10
4.在/android4.0/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindow.java文件的onKeyDown,onKeyUp函數截獲F1-F10的消息,用自己定義的廣播消息廣播出去應用就可以在後台或者前台都可以接收到按鍵按下或者釋放的廣播消息了。
case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYDOWN"));
return true;
}

case KeyEvent.KEYCODE_F1: {
//Log.e("zkliu","---------------------------test F1---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F1_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F2: {
//Log.e("zkliu","---------------------------test F2---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F2_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F3: {
//Log.e("zkliu","---------------------------test F3---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F3_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F4: {
//Log.e("zkliu","---------------------------test F4---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F4_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F5: {
//Log.e("zkliu","---------------------------test F5---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F5_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F6: {
//Log.e("zkliu","---------------------------test F6---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F6_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F7: {
//Log.e("zkliu","---------------------------test F7---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F7_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F8: {
//Log.e("zkliu","---------------------------test F8---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F8_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F9: {
//Log.e("zkliu","---------------------------test F9---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F9_KEYUP"));
return true;
}

case KeyEvent.KEYCODE_F10: {
//Log.e("zkliu","---------------------------test F10---------------------------");
getContext().sendBroadcast(new Intent("com.android.action.F10_KEYUP"));
return true;
}
應用程序注冊接收相應的廣播消息即可接收到鍵盤輸入消息。

❹ android 3.0 之後 aptbuilider.bat 移除 之後的 用命令打包

1.使用aapt生成R.java類文件:
例:
C:\Snake>aapt p -f -m -J gen -S res -I android.jar -M AndroidManifest.xml
其中
-f -m -J F:\explorer\AndroidByread\gen 代表按覆蓋的形式在gen目錄下生成帶包路徑的R.java,
-S res指定資源文件 ,
-I android.jar 指定使用的android類包,
-M AndroidManifest.xml指定程序的配置文件

2.使用android SDK提供的aidl.exe把.aidl轉成.java文件(如無aidl介面文件可省略):

3.第三步 編譯.java類文件生成class文件:

C:\Snake>javac -classpath android.jar -d bin src\com\example\android\snake\*.java gen\com\example\android\snake\R.java

-classpath android.jar 指定使用的android類包,
-d bin指定生成的類文件的位置 ,後面的兩個都是源文件.

4.使用android SDK提供的dx.bat命令行腳本生成classes.dex文件:
C:\Snake>dx --dex --output=c:\snake\bin\classes.dex c:\snake\bin

第一個參數是生成的目標文件,第二個是class文件所在的目錄(必須使用絕對路徑)

5.生成應用程序apk文件:
C:\Snake>aapt p -f -F snake.apk -v -u -z -M AndroidManifest.xml -S res -A assets -I android.jar
用法同步驟1.

6.把前面生成的classes.dex文件壓縮到apk文件,最終生成可運行的apk應用程序
C:\Snake>aapt add snake.apk bin\classes.dex

7.Android Apk 簽名
Apk簽名首先要有一個keystore的簽名用的文件 。
keystore是由jdk自帶的工具keytool生成的。
具體生成方式參考:
開始->運行 ->cmd->cd到你安裝的jdk的目錄里,我的是C:\Program Files\Java \jdk1.6.0_10\bin
然後輸入:
keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
-alias 後面跟的是別名這里是 asaiAndroid.store
-keyalg 是加密方式這里是RSA
-validity 是有效期 這里是20000
-keystore 就是要生成的keystore的名稱 這里是asiAndroid.keystore
然後按回車鍵
按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住
然後會再確認你的密碼。
之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼 (CN)等。

開始簽名。
在 C:\Program Files\Java\jdk1.6.0_10\bin 還提供一個工具 jarsigner.exe
運行命令給APK簽名:
jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore
-keystore: keystore的名稱
LotteryOnline_signed.apk: 簽名後的APK
LotteryOnline.apk: 簽名前的APK
然後按回車:會要求輸入剛才設置 的密碼,輸入後按回車就開始簽名了。

閱讀全文

與licheeandroid相關的資料

熱點內容
彩虹六號如何人工伺服器 瀏覽:632
mc伺服器地址怎麼登入 瀏覽:556
蘋果app怎麼掃描二維碼下載 瀏覽:959
css文件在線解壓 瀏覽:154
36歲程序員近況 瀏覽:283
哪裡可以下載不加密的歌 瀏覽:934
隱藏文件夾是什麼梗 瀏覽:918
插件注冊命令 瀏覽:497
梁一端加密一端不加密規范 瀏覽:82
代碼行數統計命令 瀏覽:104
單片機中2K表示什麼 瀏覽:482
紫禁城為什麼會斷開伺服器 瀏覽:580
華為手機的方舟編譯器在哪呢 瀏覽:123
下載壓縮虐殺原形2 瀏覽:906
linux腳本cd 瀏覽:167
間架結構pdf 瀏覽:843
重慶農村商業銀行app怎麼老出問題 瀏覽:471
慧編程配置要求 瀏覽:674
數控機床編程與操作視頻 瀏覽:462
文件夾資料誤刪怎麼辦 瀏覽:88