當前位置:首頁 » 安卓系統 » 從哪裡看安卓編譯腳本變數定義

從哪裡看安卓編譯腳本變數定義

發布時間: 2024-10-30 08:58:53

㈠ FFmpeg交叉編譯腳本參數配置

一:下載並解壓ffmpeg源碼

使用git或wget下載ffmpeg源碼到/root/ff目錄,安裝git或wget後執行命令解壓。

檢查解壓後的文件。

使用tar命令解壓ffmpeg-3.4.tar.bz2文件。

使用unzip命令解壓NDK壓縮包。

查看目錄結構。

安裝make工具,用於自動化編譯工作,提高效率。

二:配置編譯腳本

定義環境變數,包括NDK目錄、架構下的so庫和頭文件、交叉編譯工具、CPU類型和輸出路徑。

使用env命令查看環境變數。

解決NDK版本r19後gcc兼容問題,通過修改cc路徑使用clang。

執行make命令進行編譯,使用-j參數指定並行任務數,編譯完成後執行make install安裝。

在指定路徑下生成輸出文件。

三:創建Shell腳本

創建並編輯android.sh文件,實現自動化交叉編譯流程。

調整腳本參數實現動態配置。

重新執行腳本,生成編譯結果。

㈡ 編譯android 源碼需要sdk環境嗎

下面是android學習手冊,可以查看編譯源碼,360手機助手中下載,

編譯環境:ubuntu9.10,widnows平台目前不被支持。

1)安裝必要的軟體環境

$ sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

官方推薦的就是上面這些,如果在編譯過程中發現某些命令找不到,就apt-get它。可能需要的包還有:

$ sudo apt-get install make
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install libc6-dev

$ sudo apt-get install patch
$ sudo apt-get install texinfo

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install valgrind
$ sudo apt-get install python2.5(或者更高版本)

需要注意的是,官方文檔說如果用sun-java6-jdk可出問題,得要用sun-java5- jdk。經測試發現,如果僅僅make(make不包括make sdk),用sun-java6-jdk是沒有問題的。而make sdk,就會有問題,嚴格來說是在make doc出問題,它需要的javadoc版本為1.5。

因此,我們安裝完sun-java6-jdk後最好再安裝sun-java5-jdk,或者只安裝sun-java5-jdk。這里sun-java6-jdk和sun-java5-jdk都安裝,並只修改javadoc.1.gz和javadoc。因為只有這兩個是make sdk用到的。這樣的話,除了javadoc工具是用1.5版本,其它均用1.6版本:

$ sudo apt-get install sun-java6-jdk

修改javadoc的link:

$ cd /etc/alternatives
$ sudo rm javadoc.1.gz
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz
$ sudo rm javadoc
$ sudo ln -s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc

2)設置環境變數

$ emacs ~/.bashrc

在.bashrc中新增或整合PATH變數,如下:

#java 程序開發/運行的一些環境變數

JAVA_HOME=/usr/lib/jvm/java-6-sun
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

保存後,同步更新:

source ~/.bashrc

3)安裝repo(用來更新android源碼)

創建~/bin目錄,用來存放repo程序,如下:

$ cd ~
$ mkdir bin

並加到環境變數PATH中,在第2步中已經加入。

下載repo腳本並使其可執行:

$ curlhttp://android.git.kernel.org/repo>~/bin/repo
$ chmod a+x ~/bin/repo

4)初始化repo

repo是android對git的一個封裝,簡化了一些git的操作。

創建工程目錄:

$ mkdir android
$ cd android

repo初始化:

$ repo init -u git://android.git.kernel.org/platform/manifest.git

在此過程中需要輸入名字和email地址。初始化成功後,會顯示:

repo initialized in /android

在~/android下會有一個.repo的隱藏目錄。

5)同步源代碼

$ repo sync

這一步要很久很久。

6)編譯android源碼,並得到~/android/out目錄

$ cd ~/andoird
$ make

這一過程很久。

7)在模擬器上運行編譯好的android

編譯好android之後,emulator在~/android/out/host/linux-x86/bin下,ramdisk.img,system.img和userdata.img則在~/android/out/target/proct/generic下。

$ cd ~/android/out/host/linux-x86/bin

增加環境變數

$ emacs ~/.bashrc

在.bashrc中新增環境變數,如下

#java 程序開發/運行的一些環境變數

export ANDROID_PRODUCT_OUT=~/android/out/target/proct/generic
ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x86/bin
export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

最後,同步這些變化:

$ source ~/.bashrc
$ cd ~/android/out/target/proct/generic
$ emulator -system system.img -data userdata.img -ramdisk ramdisk.img

最後進入android桌面,就說明成功了。

8)編譯模塊

android中的一個應用程序可以單獨編譯,編譯後要重新生成system.img。

在源碼目錄下執行

$ . build/envsetup.sh (.後面有空格)

就多出一些命令:

- croot: Changes directory to the top of the tree.
- m: Makes from the top of the tree.
- mm: Builds all of the moles in the current directory.
- mmm: Builds all of the moles in the supplied directories.
- cgrep: Greps on all local C/C++ files.
- jgrep: Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- godir: Go to the directory containing a file.

可以加—help查看用法。

我們可以使用mmm來編譯指定目錄的模塊,如編譯聯系人:

$ mmm packages/apps/Contacts/

編完之後生成兩個文件:

out/target/proct/generic/data/app/ContactsTests.apk
out/target/proct/generic/system/app/Contacts.apk

可以使用

$ make snod

重新生成system.img,再運行模擬器。

9)編譯SDK

直接執行make是不包括make sdk的。make sdk用來生成SDK,這樣,我們就可以用與源碼同步的SDK來開發android了。

a)修改/frameworks/base/include/utils/Asset.h

『UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024』 改為 『UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024』

原因是eclipse編譯工程需要大於1.3M的buffer;

b)編譯ADT

由於本人不使用eclipse,所以沒有進行這步;

c)執行make sdk

注意,這里需要的javadoc版本為1.5,所以你需要在步驟1中同時安裝sun-java5-jdk

$ make sdk

編譯很慢。編譯後生成的SDK存放在out/host/linux-x86/sdk/,此目錄下有android-sdk_eng.xxx_linux- x86.zip和android-sdk_eng.xxx_linux-x86目錄。android-sdk_eng.xxx_linux-x86就是 SDK目錄。

實際上,當用mmm命令編譯模塊時,一樣會把SDK的輸出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出來。

此後的應用開發,就在該SDK上進行,所以把7)對於~/.bashrc的修改注釋掉,增加如下一行:

export PATH=${PATH}:~/android/out/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86/tools

注意要把xxx換成真實的路徑;

d)關於環境變數、android工具的選擇

目前的android工具有:

A、我們從網上下載的Android SDK,如果你下載過的話( tools下有許多android工具,lib/images下有img映像)
B、我們用make sdk編譯出來的SDK( tools下也有許多android工具,lib/images下有img映像)
C、我們用make編譯出來的out目錄( tools下也有許多android工具,lib/images下有img映像)

那麼我們應該用那些工具和img呢?

首先,我們一般不會用A選項的工具和img,因為一般來說它比較舊,也源碼不同步。其次,也不會用C選項的工具和img,因為這些工具和img沒有經過SDK的歸類處理,會有工具和配置找不到的情況;事實上,make sdk產生的很多工具和img,在make編譯出來out目錄的時候,已經編譯產生了,make sdk只是做了而已。

e)安裝、配置ADT
略過;

f)創建Android Virtual Device

編譯出來的SDK是沒有AVD(Android Virtual Device)的,我們可以通過android工具查看:

$ android list

創建AVD:

$ android create avd -t 1 -n myavd

可以android –help來查看上面命令選項的用法。創建中有一些選項,默認就行了。

再執行android list,可以看到AVD存放的位置。

以後每次運行emulator都要加-avd myavd或@myavd選項:

$ emulator -avd myavd

10)編譯linux內核映像

a)准備交叉編譯工具鏈

android代碼樹中有一個prebuilt項目,包含了我們編譯內核所需的交叉編譯工具。

b)設定環境變數

$ emacs ~/.bashrc

增加如下兩行:

export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
export ARCH=arm

保存後,同步變化:

$ source ~/.bashrc

c)獲得合適的內核源代碼

$ cd ~/android

獲得內核源代碼倉庫

$ git clone git://android.git.kernel.org/kernel/common.git kernel
$ cd kernel
$ git branch

顯示

* android-2.6.27

說明你現在在android-2.6.27這個分支上,也是kernel/common.git的默認主分支。

顯示所有head分支:

$ git branch -a

顯示

* android-2.6.27
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/android-2.6.25
remotes/origin/android-2.6.27
remotes/origin/android-2.6.29
remotes/origin/android-goldfish-2.6.27
remotes/origin/android-goldfish-2.6.29

我們選取最新的android-goldfish-2.6.29,其中goldfish是android的模擬器模擬的CPU。

$ git checkout -b android-goldfish-2.6.29 origin/android-goldfish-2.6.29
$ git branch

顯示

android-2.6.27
* android-goldfish-2.6.29

我們已經工作在android-goldfish-2.6.29分支上了。

d)設定交叉編譯參數

打開kernel目錄下的Makefile文件,把CROSS_COMPILE指向剛才下載的prebuilt中的arm-eabi編譯器.

CROSS_COMPILE ?= arm-eabi-

LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,
$(call ld-option, -Wl$(comma)–build-id,))

這一行注釋掉,並且添加一個空的LDFLAGS_BUILD_ID定義,如下:

LDFLAGS_BUILD_ID =

e)編譯內核映像

$ cd ~/android/kernel
$ make goldfish_defconfig
$ make

f)測試生成的內核映像

$ emulator -avd myavd -kernel ~/android/kernel/arch/arm/boot/zImage

㈢ 在電腦上為android設備編寫Python腳本的好用編譯器

Android模擬器上安裝Python解釋器
我了解的有兩種方法可以下載並安裝Android軟體。一個是通過Android直接訪問網路,下載安裝;另一個是通過PC下載,然後通過模擬器工具ADB安裝。這里介紹第二種方式。
下載Python for Android解釋器;
解釋器框架,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=sl4a_r3.apk&can=2&q=
python解釋器,點擊下載:http://code.google.com/p/android-scripting/downloads/detail?name=PythonForAndroid_r4.apk&can=2&q=
安裝Python for Android解釋器;
設置環境變數,加入Android模擬器工具 adb.exe所在的路徑。
打開cmd運行界面,輸入adb。你會看到如下信息:

輸入adb device。

輸入adb install –s <解釋器框架所在路徑>;比如adb install –s c:/sl4a_r3.apk。安裝完畢後,在你的android中就會出現SL4A圖標。

同上的步驟,再把python解釋器安裝上。比如adb install –s c:/PythonForAndroid_r4.apk。安裝完畢後,在你的Android中就會出現Python for Android圖標。

在Android中點擊Python for Android。進去後,有一個install的button,點擊安裝。這個程序會通過網路,下載到所需要的所有程序包。
測試Python for Android解釋器;
當一切安裝妥當後,在Android中點擊SL4A圖標。
在出現的列表中點擊hello_world.py(或者其他的腳本);界面左上角會出現一個小的SL4A的圖標,同時界面也會出現「hello world!」

如果你的Android運行結果如上所述,證明你的安裝成功了,繼續下一步。
Step4 : 編寫可在Android模擬器運行的Python Script並執行
編寫Python Script For Android;

傳遞Python Script到Android模擬器;
假設你編寫的python腳本存放在c:/Hello_world.py中
打開cmd界面,運行adb push <local> <remote>;例如,adb push c:/Hello_world.py /sdcard/sl4a/scripts/Hello_wold.py
在Android模擬器上運行Python Script;
在Android上運行腳本,你會看到「Hello world!」出現在屏幕上。 (如同step3的結果)
如果你的運行結果如上所述,那麼恭喜你,你已成功上傳並運行了你的第一個android python腳本,繼續下一步。

㈣ R軟體的全局變數怎麼定義

你需要調用的局部變數return()出來就可以了
另外一種方法是在腳本最外層定義變數,在腳本函數中用 <<- 給變數賦值就可以了

㈤ Android make 基礎

Android編譯演進過程:

build/ 目錄下

source build/envsetup.sh
輸入指令hmm 就可以查看信息

lunch 2

通過soong執行編譯構建,這里執行make命令時,main.mk文件把一些環境變數和目標都配置好後,會執行envsetup.sh中的make()進行編譯。

build/soong/soong_ui.bash --make-mode
------->

soong的編譯過程:

soong_ui.bash 調用流程:

可以看到include 了main.mk文件,從main.mk開始,將通過include命令將其所有需要的.mk文件包含進來,最終在內存中形成一個包括所有編譯腳本的集合,這個相當於一個巨大Makefile文件。Makefile文件看上去很龐大,其實主要由三種內容構成: 變數定義、函數定義和目標依賴規則,此外mk文件之間的包含也很重要。

5.工具鏈的關系

REF
https://blog.csdn.net/yiranfeng/article/details/109082489

㈥ 什麼是腳本

一、啥叫腳本呢?
其實就是一段代碼,作用就是:這些代碼通過你的瀏覽器來鼓搗一下你的機器。這樣,你就能通過點一下滑鼠就可以發點歡迎詞、發點情話啥地了。
二、怎麼在聊天室放腳本呢?
<script src=您的腳本存放地址></script>
把這段代碼放你右下角鏈接里就可以了。
三、你瀏覽器咋會知道你放腳本了呢?
因為每段腳本務都放在<script>和</script>之間了。一見到<script>字樣,瀏覽器就會當成腳本來分析了。純屬瀏覽器的條件反射之一。
四、我從寒江腳本里學到啥了?
1、定義一個變數:
var a=1 的意思就是:定義一個變數a,並給a賦值為1
2、為啥要定義變數呢?
這話說的,幹活不用人哪行啊?其實定義變數就是事先找幾個人來,留著以後派給任務。
3、定義一個數組變數
var a_name_filter = new Array(。。。);
其實數組變數也是相當於找人,只不過這個人可以干好幾樣活而已(屬於能人類型的)。
4、定義功能函數
function a(){}
這相當於各項任務。事先定義的變數一般會在這里體現出來。當你在腳本里寫上a()之後,瀏覽器就會條件反射了(執行a功能函數中的語句)。
五、腳本的說明文字
啥東西都得有個說明書不是,腳本也得有呀,而且這個說明書最好要寫在代碼里(要不過後自己都看不明白了,多丟人啊。)
那麼怎麼寫說明呢?
1、某行代碼的說明可以放在此行代碼的最後面,在行尾打上//然後再寫入文字說明就可以了。
例如:
var room_name="悠悠檸檬情"; //聊天室名字
2、如果文字太多,一行寫不下那咋辦啊?
在此特殊說明一下,其實盡管代碼一般都是英文字元,但說明文字絕對可以兼容現代漢語以及文言文的,(←廢話)
如果是多行說明文字,可以這樣寫
//---------------------------------------------
//孤鶴腳本0.9999版just for my Love
//
//失去,也是一種篤定。
//
//就算擁有的時光,是那麽短暫;
//
//能夠無怨無悔地為一個人付出,就是幸福。
//---------------------------------------------
看著感覺還不錯吧?(^!-)
當然,還有更方便的寫法,就是在說明文字的第一行寫上/*,再在最後一行寫上*/。例子如下:
/*
孤鶴腳本0.9999版 just for my Love
小薇啊,你可知道我多愛你,
我要帶你飛到天上去
看那星星多麼美麗
摘下一顆,輕輕送給你。。。
*/
本人強烈建議,不要在腳本里寫歌詞,因為有可能導致看腳本人的情感波動。:-)
六、數據類型
數據類型包括:字元串、數值、布爾三種類型。
javascript帶有數據類型強制轉換功能,這對編寫者(尤其是對喝完酒寫代碼的人)來講是一個大大的好事。要不你還得記好多的數據轉換函數。
七、JScript的運算符
關於運算符的講解,將會涉及很多很多的知識,請小學沒有畢業的同志自學完成小學課程之後再看。
計算 符號 位運算 符號
-------------------------------------
負值 - 邏輯非 !
遞增 ++ 小於 <
遞減 -- 大於 >
乘法 * 小於等於 <=
除法 / 大於等於 >=
加法 + 等於 ==
加法 + 不等於 !=
減法 - 邏輯與 &&
等於 =
例一:
x=1+2
=======
答案:x被賦值為3
例二:
if (mylove=="小薇") {
document.write("回答正確,您屬於多愁善感型的")
} else {
document.write("回答錯誤!您屬於沒事找抽型的")
} ======
運行結果:
如果變數mylove的值為「小薇」,那麼,程序會執行document.write("回答正確,您屬於多愁善感型的")
否則,則執行document.write("回答錯誤!您屬於沒事找抽型的")
我學到的腳本知識(二)
今夜,讓我靜靜地想你(詩配JS語句篇)
今夜,我悵坐一隅靜靜地想你,
想知道你在做什麼,想知道你有沒有在想我;
一、if...else 語句[根據表達式的值,有條件地執行一組語句。]
我想你,你想我嗎?如果我不想你,那麼你還想我嗎?
用語句控制如下:
if 我想你 {你想我嗎?} else{那麼你還想我嗎?}
通常都先定義一個變數來做為判斷條件。
a='我想你';
if (a=='我想你') { b='你想我嗎?'} else { b='那麼你還想我嗎?' }
二、do...while 語句[第一次執行一個語句塊,然後重復循環的執行該語句塊,直到條件表達式等於 false。]
折九百九十九隻紙鶴我就會去睡的,
用語句控制如下:
i=1;
do
(折一隻紙鶴;)
i=i++;
while(i<999)
三、switch 語句[當指定的表達式的值與某個標簽匹配時,即執行相應的一個或多個語句。]
我想你,
(假設前面已經為a賦值)
switch(a){
case 想為你點亮一盞桔色的燈,:
靜靜守候著你疲憊的歸來;
case 想為你遞上一杯溫熱的香茗,:
緩緩驅散你臉上的倦容;
case 想用我溫柔纖細的手指,:
輕輕撫平你眼角的皺紋;
case 想用我輕柔溫情的呢喃,:
撫慰你驛動不安的心靈。;
}
然後靜靜地看著你……
我祈求,祈求這一刻的寧靜、永恆。
四、for 語句[只要指定條件為 true 都執行語句塊。]
(第二條語句也可以用FOR語句來表達)
用語句控制如下:
for (i = 1; i < 999; i++) {
(折一隻紙鶴;)
}
五、while 語句[執行一個語句,直到指定的條件為 false。]
(第二條語句也可以用while語句來表達)
折九百九十九隻紙鶴我就會去睡的,
用語句控制如下:
var i=1;
while (i < 999) {
(折一隻紙鶴;)
i++;
}
我學到的腳本知識(三)
前二篇,已經把腳本的基本知識粗略地介紹了一下,基礎知識也介紹得差不多了,再有一些不太常用的只能在實戰中總結了。
以下結合寒江322腳本解釋一下。
粗看了一下寒江322腳本,大概共分四個部分
第一部分:變數定義部分,前516行。
第二部分:加入新的界面元素
第三部分:重新設置原有界面元素的樣式
第四部分:系統初始化
=====第一部分====
這部分內容於「我所學到的腳本知識(一)」中有介紹。
其實就是定義了一些變數(包括數組變數),這些定義好的變數會在下面的幾個部分中使用。
例一:
var room_name="心夢如語";// 房間名稱
定義了一個變數:room_name,並賦值為:心夢如語
注意寫法:
var 變數名 = 變數值 ;
定義一個變數,前面一定要有var,每句結束時要有";"符號。
後面的「// 房間名稱」部分為說明文字,在腳本執行時將被自動忽略。
例二:
// 按鈕背景圖片 寬度,文件名
var a_btn_pic = new Array
( 17, "btn17.gif",
18, "btn18.gif",
19, "btn19.gif",
35, "btn35.gif",
46, "btn46.gif",
70, "btn70.gif"
);
定義一個變數數組,每個值中間以「,」分隔。
其實也可以寫成如下形式:
var a_btn_pic = new Array(17,"btn17.gif",18,"btn18.gif",19,"btn19.gif",35,"tn35.gif",46,"btn46.gif",70,"btn70.gif");
這樣寫的話,腳本的體積會減小,但腳本的可讀性會差一些。
例三:
//——圖片——
var a_picture = new Array
( "你好", "pic/p001.gif",
"鼓掌", "pic/p002.gif",
。。
。 )

//——背景色——
var a_bkcolor = new Array
( "FFFFFF",
"fdd242",
"f8fead",
"a0e4a0",
。。
。 )
只是寫法的格式不同,其實都是定義變數數組。
好了,到現在為止,你已經完全理解了寒江322腳本的前516行的內容了(322腳本共1956行)。恭喜恭喜

我學到的腳本知識(四)
前三篇已經把腳本的基本知識粗略地介紹了一下,基礎知識也介紹得差不多了,再有一些不太常用的只能在實戰中總結了。
以下結合寒江322腳本解釋一下。
以下內容由發布之日起執行,如有與國家法律法規相抵觸,請按寒江322腳本之標准執行。
粗看了一下寒江322腳本,大概共分四個部分
第一部分:變數定義部分,前516行。
第二部分:加入新的界面元素
第三部分:重新設置原有界面元素的樣式
第四部分:系統初始化
=====第一部分====
這部分內容於「我所學到的腳本知識(一)」中有介紹。
其實就是定義了一些變數(包括數組變數),這些定義好的變數會在下面的幾個部分中使用。
例一:
var room_name="心夢如語";// 房間名稱
定義了一個變數:room_name,並賦值為:心夢如語
注意寫法:
var 變數名 = 變數值 ;
定義一個變數,前面一定要有var,每句結束時要有";"符號。
後面的「// 房間名稱」部分為說明文字,在腳本執行時將被自動忽略。
例二:
// 按鈕背景圖片 寬度,文件名
var a_btn_pic = new Array
( 17, "btn17.gif",
18, "btn18.gif",
19, "btn19.gif",
35, "btn35.gif",
46, "btn46.gif",
70, "btn70.gif"
);
定義一個變數數組,每個值中間以「,」分隔。
其實也可以寫成如下形式:
var a_btn_pic = new Array(17,"btn17.gif",18,"btn18.gif",19,"btn19.gif",35,"tn35.gif",46,"btn46.gif",70,"btn70.gif");
這樣寫的話,腳本的體積會減小,但腳本的可讀性會差一些。
例三:
//——圖片——
var a_picture = new Array
( "你好", "pic/p001.gif",
"鼓掌", "pic/p002.gif",
。。
。 )

//——背景色——
var a_bkcolor = new Array
( "FFFFFF",
"fdd242",
"f8fead",
"a0e4a0",
。。
。 )
只是寫法的格式不同,其實都是定義變數數組。
好了,到現在為止,你已經完全理解了寒江322腳本的前516行的內容了(322腳本共1956行)。恭喜恭喜
下面我寫一點題外的話。腳本做為一種解釋性的語言,與真正的程序還是有一定的差距的,從我的感覺來看,寫腳本是一種應用,而寫程序是一種開發。沒有腳本可以寫成一個系統,而程序可以,另外,寫程序有很多的藝術性在裡面。就象畫一幅山水畫一樣,創作的是一種意境,而不是一顆樹的外形。寫這些話的目的是想表達我的一個想法:腳本既然只是一種應用,那麼就把它共享吧,不要讓它帶有更多的商業目的。

我所學到的腳本知識(五)附:出擊代碼
從第517行開始,會涉及到JS語句了。其實語句也沒有什麼,萬事開頭難,已經學會500多行了,還難個啥呀。
(部分同志可能還對第(三)篇的內容還暈乎著呢。今天開始就會讓你一點點清醒了。)
先打個比方:
1、把寒江腳本看做一座樓(注意:是樓,不是平房,有住「別野」的一邊涼快去)
2、這座樓分四層(就是我前所說的,332腳本的四個部分。)
3、每層樓會有多個房間(就是各個功能函數)
4、每個房間又會有具體的工作和職責(就是各子功能函數)
5、每個房間里的人,暫且看做各個變數吧。
下面以一段332腳本的函數來說明一下
function add_new_element()//加入新的界面元素
{ 。


write_button("","歡迎",409,60,35,20,"","快速歡迎","autosend(a_welcome)");



}
這段代碼的add_new_element 是一個功能函數(也就是自己定製的一個任務,目的就是在聊天室的輸入區加入新的界面元素。)
從「{」開始,到「}」結束
在「{」與「}」之間的內容是add_new_element 功能函數的各項具體工作。例如:write_button(...)、write_bkcolor_select(...)、
write_select(...)等等。
而write_button(...)這些又是一些功能函數,這一函數的具體功能是在腳本第1010-1014行的
function write_button(name,value,left,top,width,height,color,title,action) 中。
而1010-1014行的
function write_button(name,value,left,top,width,height,color,title,action)//加入執行一個函數的按鈕
{ write_button_style(name,left,top,width,height,color,title,"");
document.write(' onclick="' + action + '">'+ value +'</button>');
}
這段代碼又包含了write_button_style(...)功能函數。
這樣一層套一層的,有時容易給人套迷糊,但其實這就象是一個大工作,裡面又分很多小的工作,每一個小的工作裡面又會分為幾個小
的工作一樣。
你晚上回家做飯的時候,不能光做飯不做菜吧?所以做飯其實是做飯和做菜兩樣工作。做菜也不能就一個菜吧?(那也喝不進去小酒啊
),標准再低,也得弄個四菜一湯啥的呀,這每道菜就又是一項工作了。[依吾政府提醒廣大社員:喝多酒有害身體健康!]
那麼為什麼有些功能函數後面的括弧里要加那麼多字母、數字呢?這些字母和數字就是第一篇我們提到的變數,它的作用就好像某一項
任務在分配之前先指定幾個人去做一樣。
象 write_button_style(name,left,top,width,height,color,title,"");
的意思就是:write_button_style這個任務指派name,left,top,width,height,color,title,""這幾個人去做,最後一個""的意思是空缺
,因為每個功能函數是事先定義好的,本來需要五個變數的,你非得派四個變數去,那對不起,你得寫一個""來表示缺一個變數,(到
時候算獎金也得多給一份不是。)
至於具體的瀏覽器怎麼去找那段代碼,怎麼去執行,你就不用操心了,瀏覽器會象領導查檢勞動紀律一樣,從頭走到尾。(領導的事最
好別管,把自己的工作干好就成,出了事讓領導去兜著。)
以上這段如果看明白了,那332腳本裡面的功能函數你就都可以理出一個大體的思路了。至於細節問題如「typeof(parent.r.listhtml)
」「document.inputform.USER...」這些都先不用管。

㈦ 安卓腳本過期了怎麼改到期時間呢

一般來說,安卓腳本的過期時間是由開發者在開發過程中設定的,但是如果你想改變它的過期時間雹賣行的話,可以使用Android的代碼編輯器來更改它的過配鬧期時間。步驟如下:

1. 首先,打開你的Android IDE,然後找到你的Android腳本的代碼文件。

2. 找到你的腳本的過期時間設置,一般是一個有效期變數,然後更改它的值為你想要的時間。

3. 保存文件,然後重新編譯你的Android腳本,更改後的過期時間將會生效。

4. 完成之後,重新部署你的Android腳本到你的應用中,然後就可以使用新的過期時間來運行你的應用了。

如果你想要更改過期時間,可以使用上述步驟來操作,謹慎操作源嘩,確保你的應用不會受到影響。

熱點內容
刪除手機瀏覽器緩存的視頻在哪裡 發布:2024-10-30 11:13:45 瀏覽:246
電腦換配置什麼不用換 發布:2024-10-30 11:11:58 瀏覽:976
ifelseifsql 發布:2024-10-30 11:03:13 瀏覽:127
android70三星 發布:2024-10-30 10:56:59 瀏覽:849
qt字元串加密 發布:2024-10-30 10:26:12 瀏覽:903
福建免費雲空間工具伺服器 發布:2024-10-30 10:25:06 瀏覽:460
安卓被拉黑是什麼意思 發布:2024-10-30 10:23:47 瀏覽:319
qq關漫遊為什麼要密碼 發布:2024-10-30 10:18:50 瀏覽:334
androidipad 發布:2024-10-30 10:13:28 瀏覽:578
皮箱密碼忘記如何更換 發布:2024-10-30 10:02:04 瀏覽:987