如何使用android自带的ant 如何使用QPython开发Android应用?

\u5982\u4f55\u5229\u7528ant\u8fdb\u884c\u6253\u5305android

\u901a\u5e38\u6211\u4eec\u4e60\u60ef\u7528eclipse\u6765\u5f00\u53d1android\u7a0b\u5e8f\uff0c\u5b83\u4f1a\u81ea\u52a8\u5e2e\u6211\u4eec\u6253\u5305\u5f53\u524d\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u5982\u679c\u5728Navigator\u89c6\u56fe\u4e0b\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\u4ee5\u4e0b\u51e0\u4e2a\u6587\u4ef6\uff1a

com\u5305\u653e\u7f6e\u7684\u662f\u6211\u4eec\u7684class\u6587\u4ef6\uff0cclasses.dex\u662fclass\u6587\u4ef6\u7ecf\u8fc7\u8f6c\u6362\u540e\u7684\u53ef\u4ee5\u5728dalvik\u4e0a\u8dd1\u7684\u7cbe\u7b80\u7c7b\u6587\u4ef6\uff0cresources.ap_\u662f\u7ecf\u8fc7\u6253\u5305\u7684\u8d44\u6e90\u6587\u4ef6\uff0cant.apk\u5c31\u662f\u6700\u7ec8\u7684\u6253\u5305\u6587\u4ef6\u3002
\u4f7f\u7528ANT\u6765\u5bf9\u5e94\u7528\u6253\u5305\uff0c\u4e00\u822c\u4f1a\u7ecf\u8fc7\u4ee5\u4e0b\u51e0\u4e2a\u6b65\u9aa4\uff1a
1.\u7528aapt\u547d\u4ee4\u751f\u6210R.Java\u6587\u4ef6
2.\u7528aidl\u547d\u4ee4\u751f\u6210\u76f8\u5e94java\u6587\u4ef6

3.\u7528javac\u547d\u4ee4\u7f16\u8bd1java\u6e90\u6587\u4ef6\u751f\u6210class\u6587\u4ef6

4.\u7528dx.bat\u5c06class\u6587\u4ef6\u8f6c\u6362\u6210classes.dex\u6587\u4ef6

5.\u7528aapt\u547d\u4ee4\u751f\u6210\u8d44\u6e90\u5305\u6587\u4ef6resources.ap_

6.\u7528apkbuilder.bat\u6253\u5305\u8d44\u6e90\u548cclasses.dex\u6587\u4ef6,\u751f\u6210unsigned.apk

7.\u7528jarsinger\u547d\u4ee4\u5bf9apk\u8ba4\u8bc1,\u751f\u6210signed.apk

\u5728\u4f7f\u7528python\u5f00\u53d1android\u5e94\u7528\u4e4b\u524d\u6211\u4eec\u9700\u8981\u51c6\u5907\u597d\u73af\u5883\uff0c\u73af\u5883\u9700\u8981\u5b89\u88c5PythonForAndroid\uff0c\u7136\u540e\u5f00\u59cb\u7f16\u7a0b\uff0c\u7f16\u7a0b\u65f6\u6253\u5f00eclipse, \u521b\u5efa\u4e00\u4e2a\u65b0\u7684android project \u201cintroduction\u201d\uff0c\u8bbe\u7f6e\u5bf9\u8c61\u7b49\u7b49\u6b65\u9aa4\uff0c\u6700\u540e\u5b8c\u6210\u3002\u6574\u4e2a\u5f00\u53d1\u7684\u8fc7\u7a0b\u6b65\u9aa4\u867d\u7136\u4e0d\u662f\u5f88\u590d\u6742\uff0c\u4f46\u4e5f\u662f\u9700\u8981\u6ce8\u610f\u5f88\u591a\u7ec6\u8282\u3002\u5728\u6b64\u4e4b\u524d\uff0c\u60f3\u8981\u4f7f\u7528python\u5f00\u53d1android\u5e94\u7528\u7684\u65f6\u5019\u9700\u8981\u5148\u5b66\u4e60python\u76f8\u5173\u77e5\u8bc6\uff0c\u8fd9\u6837\u80fd\u66f4\u597d\u5730\u7406\u89e3\u6574\u4e2a\u6d41\u7a0b\u3002
Python\u662f\u4e00\u79cd\u9762\u5411\u5bf9\u8c61\u3001\u89e3\u91ca\u578b\u8ba1\u7b97\u673a\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\uff0c\u5176\u6e90\u4ee3\u7801\u548c\u89e3\u91ca\u5668CPython\u9075\u5faaGPL(GNU General Public License)\u534f\u8baePython\u8bed\u6cd5\u7b80\u6d01\u6e05\u6670\uff0c\u7279\u8272\u4e4b\u4e00\u662f\u5f3a\u5236\u7528\u7a7a\u767d\u7b26(white space)\u4f5c\u4e3a\u8bed\u53e5\u7f29\u8fdb\u3002Python\u5177\u6709\u4e30\u5bcc\u548c\u5f3a\u5927\u7684\u5e93\u3002\u4f7f\u7528Python\u5feb\u901f\u751f\u6210\u7a0b\u5e8f\u7684\u539f\u578b(\u6709\u65f6\u751a\u81f3\u662f\u7a0b\u5e8f\u7684\u6700\u7ec8\u754c\u9762)\u3002
Python\u4e5f\u662f\u52a8\u6001\u8bed\u8a00\u3002Android\u4e0d\u76f4\u63a5\u652f\u6301\u4f7f\u7528python\u5f00\u53d1\u5e94\u7528\uff0c\u9700\u8981\u4f7f\u7528\u5176\u5b83\u4e2d\u95f4\u4ef6\u6216\u8005\u5e93\u3002PythonForAndroid\u63d0\u4f9b\u4e86\u5728android\u5e73\u53f0\u4e0a\u5bf9python\u8bed\u8a00\u7684\u652f\u6301;CLE\u652f\u6301python\u548cjava\u4e4b\u95f4\u7684\u4ea4\u4e92\uff0c\u540c\u65f6\u63d0\u4f9b\u4e86\u4e00\u4e2a\u901a\u7528\u7684\u63a5\u53e3\uff0c\u53ef\u7528\u4e8e\u5176\u5b83\u591a\u79cd\u8bed\u8a00\u3002Wrapandroid project\u5c06android\u7c7b\u5c01\u88c5\u4e3aCLE\u5bf9\u8c61\uff0c\u4ece\u800c\u53ef\u4ee5\u4f7f\u591a\u79cd\u8bed\u8a00\u53ef\u4ee5\u8c03\u7528android\u7c7b\u3002\u4f7f\u7528\u8fd9\u4e09\u4e2a\u7ec4\u4ef6\uff0c\u53ef\u4ee5\u5728android\u5e73\u53f0\u4e0a\u76f4\u63a5\u4f7f\u7528python\u5f00\u53d1\u754c\u9762\u5e94\u7528\u7a0b\u5e8f\u3002Wrapandroid\u9879\u76ee\u5728\u8fdb\u884c\u4e2d\uff0c\u76ee\u524d\u76840.8.5\u7248\u672c\u5df2\u7ecf\u63d0\u4f9b\u4e86\u9664SQlite\uff0cOpenGL\u4e4b\u5916\u5927\u90e8\u5206android\u7c7b\u7684\u5c01\u88c5\u3002\u5b8c\u5168\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u72ec\u7acb\u7684python\u5e94\u7528\u7a0b\u5e8f\u3002
\u5728android\u4e0a\u5f00\u53d1python\u5e94\u7528\u7a0b\u5e8f\uff0c\u7f16\u7a0b\u548c\u6253\u5305\u73af\u5883\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528eclipse\u3002
1. \u51c6\u5907\u73af\u5883
a: \u5b89\u88c5PythonForAndroid\u3002
: CLE\u5728\u7a0b\u5e8f\u8fd0\u884c\u7684\u65f6\u5019\uff0c\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0a\u5b89\u88c5\uff0c\u4e5f\u53ef\u4ee5\u4e0b\u8f7d\u5e93\u51fd\u6570\uff0c\u653e\u5230\u5de5\u7a0b\u4e2d\u3002\u5f00\u53d1\u9700\u8981java\u5e93\u6587\u4ef6starcore_android_r6.jar\u3002\u6587\u4ef6\u5728starcore_devfiles_r6.zip\u4e2d\uff0c\u53ef\u4ee5\u4ece\u7f51\u4e0a\u4e0b\u8f7d
c: Wrapandroid\u9879\u76ee\u5e93\u6587\u4ef6wrapandroid.jar\u3002
2. \u5f00\u59cb\u7f16\u7a0b
a. \u6253\u5f00eclipse, \u521b\u5efa\u4e00\u4e2a\u65b0\u7684android project \u201cintroduction\u201d
. \u5982\u679c\u8981\u4ece\u7f51\u7edc\u5b89\u88c5\uff0c\u5219\u9700\u8981\u6dfb\u52a0\u8bb8\u53ef\u6743\u9650\uff1a
c. \u5c06\u5e93\u6587\u4ef6starcore_android_r6.jar\u548cwrapandroid.jar\u5230\u5de5\u7a0b\u76ee\u5f55\u4e0b\uff0c\u5c06\u8fd9\u4e24\u4e2a\u6587\u4ef6\u52a0\u5165\u5230\u5de5\u7a0b\u4e2d\uff0c\u5982\u4e0b\u56fe\uff1a

d. \u7f16\u8f91 IntroductionActivity.java\uff0c\u5982\u4e0b\u4fee\u6539\uff0c\u52a0\u8f7dpython\u4ee3\u7801

\u5982\u679c\u4e0d\u5e0c\u671b\u4ece\u7f51\u7edc\u5b89\u88c5CLE\uff0c\u53ef\u4ee5\u5c06CLE\u7684\u5171\u4eab\u5e93\u6587\u4ef6\u5305\u542b\u5728\u5de5\u7a0b\u4e2d\uff0c\u5982\u4e0b\uff1a

\u540c\u65f6\u5728activity\u4e2d\u8bbe\u7f6e\u4e0b\u8f7d\u6807\u5fd7\u4e3afalse

\u53ea\u4e0d\u8fc7\u6b64\u65f6\u751f\u6210\u7684\u5b89\u88c5\u5305\u5927\u4e00\u4e9b\u3002
e. \u7f16\u8f91layout\uff1amain.XML.

f. \u5728assets\u76ee\u5f55\u4e0b\uff0c\u521b\u5efacode.py\u6587\u4ef6.
3. code.py\u4ee3\u7801\u5982\u4e0b
a. \u83b7\u53d6\u5f53\u524d\u670d\u52a1

. \u83b7\u53d6\u5f53\u524d\u7684Activity

c. \u83b7\u53d6layout\u4e2d\u5b9a\u4e49\u7684\u5bf9\u8c61

d. \u52a8\u6001\u521b\u5efa\u5bf9\u8c61

\u8fd0\u884c\u7ed3\u679c\u5982\u4e0b\uff1a

Ant是android的编译打包工具,一个很好的跨平台构建工具,特别是对于Java项目,这里使用它对Android工程进行自动化构建可以得到非常大的便利。一般来说对Android工程进行构。

使用Ant搭建Android开发环境,建立android项目

配置Ant环境在windows上应该选择zip压缩包,将zip压缩包解压到一个目录。

打开系统环境变量,在系统变量栏点击新建,变量名输入“ANT_HOME”,变量值为Ant的根目录,如“D:\Android\apache-ant-1.9.0”,注意不要带双引号。

在系统变量中找到Path变量,点击编辑,在变量值的最后添加“%ANT_HOME%\bin”,注意不要带双引号,并且要使用“;”和之前的变量值隔开。

打开一个cmd窗口,输入“ant”,如果显示一下信息,说明Ant的环境配置成功,如果显示:'ant'
不是内部或外部命令,也不是可运行的程序或批处理文件。则要检查一下路径是否有问题。

在Eclipse中配置Ant

在eclipse中使用Ant之前,为了使Ant的build.xml文件能够安装制定的格式进行缩进和高亮显示,并能够进行代码提示,首先要简单的设置一下。

打开Windows - Preferences,依次展开General,Editors,选中File Associations,点击Add...,在Add
File Type对话框中输入build.xml,点击Ok。

接下来在File type:栏选中build.xml,在Associated Editor:栏选中Ant
Editor,点击Default,build.xml的图标变成了一个小蚂蚁,配置完毕。

使用Ant编译Android的java代码和native代码

新建一个Android工程TestAnt,在工程的根目录下新建一个build.xml文件

输入以下内容:
<?xml version="1.0" encoding="UTF-8"?><project name="TestAnt" default="init"> <target name="init"> <fail message="Ant 1.7.0 or higher is required."> <condition> <not> <antversion property="ant.version" atleast="1.7.0" /> </not> </condition> </fail> </target> </project>

打开cmd,切换到工程根目录,输入ant init

编译成功,来解析这个build.xml:
<project name="TestAnt" default="init">

project是Ant工程的根节点,name属性是工程的名称,default是默认执行的target,init为默认的target,当我们输入Ant的时候和Ant
init是一样的效果。
<target name="init"> <fail message="Ant 1.7.0 or higher is required."> <condition> <not> <antversion property="ant.version" atleast="1.7.0" /> </not> </condition> </fail> </target>

target指定了要执行的操作,init是我们为这个target所起的名字,也可以是build,clean等等。在这个target中,执行的是检查Ant的版本,如个小于1.7.0的话会输出报错信息。

例如我们可以添加一个clean的target
<target name="clean"> <echo message="Deleting temporary files..." /> <delete dir="gen" /> <delete dir="bin" /> <delete dir="out" /> <delete dir="obj" /> <echo message="DONE (Deleting temporary files)" /> </target>

执行的操作是删除所有临时目录,在cmd窗口中输入Ant clean,这四个临时目录就会被删除,和在eclipse中执行清理是一个效果。

使用Ant编译Android工程

在SDK中,Google已经为我们写好了一个build.xml文件,就是sdk根目录\tools\ant\build.xml,所以我们只要把这个build.xml引入就可以编译Android工程了。

在这之前首先要新建一个local.properties文件,引入sdk和ndk的路径

输入一下内容:

sdk.dir=D:\\Android\\android-sdk
ndk.dir=D:\\Android\\android-ndk

分别为sdk和ndk的路径,要安装自己的实际路径进行配置。

在测试工程的build.xml中输入一下代码:
<?xml version="1.0" encoding="UTF-8"?><project name="TestAnt" default="release"> <loadproperties srcFile="local.properties" /> <loadproperties srcFile="project.properties" /> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="sdk.dir" /> <fail message="ndk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="ndk.dir" /> <import file="${sdk.dir}/tools/ant/build.xml" /></project>

在命令行中执行ant release或ant debug,就会执行对应的编译。

以上只是进行Java代码的编译,如何编译native代码呢,在NDK中Google可没有提够build.xml,这就需要我们自己实现。在新版NDK中,我们只要在命令行中切换到工程的根目录,然后执行

“D:\Android\android-ndk\ndk-build.cmd”(红色部分要替换成自己的路径)

就可以,例如,在TestAnt工程中添加native代码

执行ndk-build

所以我们只要在Ant中执行一个cmd命令就可以了,在build.xml中添加
<target name="native"> <echo message="Building native libraries..." /> <exec executable="${ndk.dir}/ndk-build.cmd" failonerror="true" /> <echo message="DONE (Building native libraries)" /> </target>

然后在命令行中执行ant native

执行了ndk-build。

以上介绍的都是使用Ant进行进步的Android编译操作,在此基础上可以实现更复杂的操作,比如批量替换资源文件,批量打包等等。

使用ANT打包Android应用
http://blog.csdn.net/liuhe688/article/details/6679879
这里有图解教程

  • 濡備綍浣跨敤Android鑷甫鐨璧勬簮
    绛旓細鍦▁ml鏂囦欢涓紩鐢ㄧ郴缁熺殑id锛屽彧闇瑕佸姞涓娾淍android:鈥濆墠缂鍗冲彲銆傚鏋滄槸鍦↗ava浠g爜涓娇鐢ㄧ郴缁熻祫婧愶紝鍜屼娇鐢ㄨ嚜宸辩殑璧勬簮鍩烘湰涓婃槸涓鏍风殑銆備笉鍚岀殑鏄紝闇瑕佷娇鐢╝ndroid.R绫绘潵浣跨敤绯荤粺鐨勮祫婧愶紝鑰屼笉鏄娇鐢ㄥ簲鐢ㄧ▼搴忔寚瀹氱殑R绫汇傝繖閲屽鏋滆鑾峰彇ListView鍙互浣跨敤android.R.id.list鏉ヨ幏鍙栥2锛夊埄鐢ㄧ郴缁熺殑鍥剧墖璧勬簮 鍋囪鎴戜滑...
  • 濡備綍鍦∕ac涓浣跨敤Android SDK,浣跨敤adb宸ュ叿閬垮厤鍑虹幇
    绛旓細鍦∕ac绯荤粺涓紝涔熷彲浠ュ畨瑁浣跨敤Android SDK銆傚苟浣跨敤adb宸ュ叿鏉ュ瀹夊崜绯荤粺杩涜璋冭瘯銆備笅杞藉畨瑁匒ndroid SDK Mac鐗堟湰 璁块棶锛歨ttp://developer.android.com/sdk/index.html 鍗曞嚮宸︿晶鐨 Download 鐩綍锛岀劧鍚庡崟鍑诲彸渚х殑 DOWLOAD FOR OTHER PLATFORMS 锛屼粠涓夋嫨 SDK Tools Only 涓殑 Mac OS X 32&64 bit 鏉ヤ笅杞姐
  • android studio aar鎬庝箞鐢
    绛旓細瀹樼綉鍦板潃锛<a href="<a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a>" target="_blank"><a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a></a> 涓. 濡備綍浣跨敤aar 鎯宠浣跨敤aar鏂囦欢锛岄渶瑕佺粡杩囦互涓嬪嚑姝ワ細1...
  • android寮鍙 鎬庝箞缁檃pk鏂囦欢鐢ㄥ凡鏈夌殑绛惧悕鏂囦欢杩涜绛惧悕,涓嶇敤eclipse
    绛旓細1锛浣跨敤jdk鐨刱eytool宸ュ叿鐢熸垚绛惧悕鐢ㄧ殑璇佷功> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 鍒涘缓杩囩▼闇瑕佽緭鍏ヤ竴浜涙爣璇嗕俊鎭拰瀵嗙爜锛屼竴浜涢噸瑕佺殑鍙傛暟鍊艰鏄庡涓嬶紙鏍规嵁鑷繁鐨勯渶瑕佽杩涜鐩稿簲鐨勪慨鏀癸級锛 CERT.keystore --- 璇佷功淇濆瓨鐨勬枃浠跺悕 CERT ---...
  • 濡備綍浣跨敤Android钃濈墮寮鍙
    绛旓細浣跨敤钃濈墮API锛屽彲浠ュ仛鍒帮細鎼滅储钃濈墮璁惧 浠庢湰鍦扮殑Bluetooth adapter涓煡璇㈠凡缁忛厤瀵圭殑璁惧 寤虹珛RFCOMM閫氶亾 閫氳繃service discovery杩炴帴鍒板叾瀹冭澶 鍦ㄨ澶囦箣闂翠紶杈撴暟鎹 绠$悊澶氫釜杩炴帴 鍩虹鐭ヨ瘑 鏈枃妗d粙缁嶄簡濡備綍浣跨敤Android鐨钃濈墮API鏉ュ畬鎴愮殑鍥涗釜蹇呰鐨勪富瑕佷换鍔★紝浣跨敤钃濈墮杩涜璁惧閫氫俊锛屼富瑕佸寘鍚洓涓儴鍒嗭細钃濈墮璁剧疆銆佹悳绱...
  • Android Studio濡備綍浣跨敤aar渚濊禆鍖?
    绛旓細鎴戠殑鏂规硶鏄氳繃maven-android-plugin鏉ョ敓鎴愮殑,濡傛灉浣浣跨敤杩嘺ctionbarsherlock浠ュ墠鐨勭増鏈殑璇,杩欎釜宸ュ叿搴旇涓嶉檶鐢,濡傛灉浣犺繛maven 閮戒笉鐭ラ亾鐨勮瘽,寤鸿濂藉ソ瀛︿範涓涓媘aven,铏界劧鐜板湪gradle寰堢伀 ,浣嗘槸鎴戣繕鏄渶鍠滄maven銆傚叧浜庡叿浣撶敓鎴愭楠や笉涔呬笉璇︾粏璇翠簡,鏂囩珷鏈鍚庤创鍑哄嚑涓綉鍧渚涘ぇ瀹跺涔犱娇鐢,鏀惧績鎴戞寜椤哄簭缁欎綘浠,鍙涓姝ヤ竴姝...
  • 鍦╓indows涓婥odeBlocks鑳界紪璇Android涓嬬殑.so鍜.a鍚
    绛旓細澶囨敞锛歂DK缂栬瘧姝ラ锛1.閫夋嫨ndk鑷甫鐨渚嬪瓙hello-jni锛屼綅浜嶦:\android-ndk-r5\samples\hello-jni(鏍规嵁鍏蜂綋鐨勫畨瑁呬綅缃屽畾)銆2.杩愯cygwin锛岃緭鍏ュ懡浠d/cygdrive/e/android-ndk-r5/samples/hello-jni锛岃繘鍏ュ埌E:\android-ndk-r5\samples\hello-jni鐩綍銆3.杈撳叆$NDK/ndk-build锛屾墽琛屾垚鍔熷悗锛屽畠浼氳嚜鍔ㄧ敓鎴...
  • 濡備綍浣跨敤Android璋冪敤鐧惧害鍦板浘API
    绛旓細1銆佽皟鐢ㄧ櫨搴﹀湴鍥続PI棣栧厛瑕佺敵璇蜂竴涓閽ワ紝杩涘叆http://lbsyun.baidu.com/鐢鐧惧害璐﹀彿鐧婚檰锛岃繘鍏ラ〉闈㈢敵璇风閽ワ紙鍏蜂綋鎵濉俊鎭互缃戠珯涓哄噯锛2銆佺敵璇锋垚鍔熷悗锛岃嚜宸变細鐪嬪埌鐢宠鍒扮殑璇︽儏锛屽寘鎷簲鐢ㄥ悕绉扮閽ョ瓑 闅忕潃key鐗堟湰鐨勪笉鍚岋紝瀹樻柟鍦╧ey鏂归潰缁欏嚭涓嶅悓鐨勭敤娉曪細锛. 涓轰簡缁欑敤鎴锋彁渚涙洿瀹夊叏鐨勬湇鍔★紝Android SDK鑷獀2.1...
  • 浠Android绯荤粺鎵嬫満涓轰緥:A. 棣栧厛鎵撳紑鎵嬫満涓殑璁剧疆閫夐」,鎵惧埌鈥滄棤绾垮拰缃戠粶...
    绛旓細瀹夊崜鎵嬫満涓婄綉鍙傛暟璁剧疆鏂规硶锛氳繘鍏ユ墜鏈鸿缃-杩炴帴-鏇村缃戠粶-绉诲姩缃戠粶-绉诲姩鏁版嵁锛堝紑鍚級-鎺ュ叆鐐瑰悕绉-鎸夐渶閫夋嫨锛屼篃鍙偣鍑昏彍鍗曢敭-閲嶇疆涓洪粯璁ゅ硷紙cmnet鎺ュ叆鐐规墍浜х敓鐨勬祦閲忚垂鏄惁鍖呭惈鍦ㄥ椁愪腑璇蜂互瀹為檯寮閫氬椁愪负鍑嗭級锛涘鏈夋墜鏈哄叿浣撳搧鐗岋紝鍙洖澶嶏細XX鎵嬫満涓婄綉鍙傛暟璁剧疆鏂规硶锛堝锛氳嫻鏋滄墜鏈轰笂缃戝弬鏁拌缃柟娉/鍗庝负鎵嬫満涓婄綉...
  • 鍦android閲,鎴戞兂鎵撳紑杞欢A鐒跺悗鑷姩鍚姩杞欢B,鍚屾椂,鍦ㄨ蒋浠禕涓婂弻鍑讳笅...
    绛旓細寤鸿浣犲嵏杞戒簡瀹冿紒鏈変笉鑳借蒋浠舵湁姣掞紒
  • 扩展阅读:android苹果版下载 ... 苹果android怎么打开 ... 苹果android怎么设置 ... android服务同屏软件 ... 苹果android在哪里找 ... android在哪里打开 ... android下载安装app ... 电大android智能手机编程 ... android系统怎么打开 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网