热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:Ubuntu14.04设置Android开发环境

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ubuntu14.04设置Android开发环境相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ubuntu 14.04 设置Android开发环境相关的知识,希望对你有一定的参考价值。



准备Java环境

本文仅仅安装sdk,不安装什么IDE,由于我仅仅须要命令行模式开发就可以。

首先安装openjdk 1.6。然后安装ant。这个不赘述。

下载SDK

从这里下载SDK for Linux 64bit的版本号: http://developer.android.com/sdk/index.html?hl=sk#download

wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz

下载后,解压到本地文件夹,比方/opt/文件夹下, 然后环境变量设置,加入三行到~/.bashrc文件

export ANDROID_HOME=/opt/android-sdk-linux
PATH=$PATH:/opt/android-sdk-linux/tools
PATH=$PATH:/opt/android-sdk-linux/platform-tools


执行Android SDK Manager

执行android命令。将会弹出SDK Manager对话框,从中选择须要的package进行安装


安装模拟设备

android avd详细參考官方文档:http://developer.android.com/training/basics/firstapp/running-app.html

我创建了一个模拟设备。  最后执行该模拟设备。

技术分享


技术分享


技术分享


技术分享

创建工程

显示targets

$ android list targets
Available Android targets:
----------
id: 1 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: WQVGA400, HVGA, WVGA854, QVGA, WQVGA432, WVGA800 (default)
Tag/ABIs : default/armeabi
----------
id: 2 or "android-19"
Name: Android 4.4.2
Type: Platform
API level: 19
Revision: 3
Skins: WQVGA400, HVGA, WXGA800-7in, WXGA800, WVGA854, QVGA, WQVGA432, WVGA800 (default), WSVGA, WXGA720
Tag/ABIs : default/armeabi-v7a
----------
id: 3 or "Google Inc.:Google APIs:10"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 2
Description: Android + Google APIs
Based on Android 2.3.3 (API level 10)
Libraries:
* com.android.future.usb.accessory (usb.jar)
API for USB Accessories
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA854, WVGA800 (default), WQVGA400, QVGA, WQVGA432, HVGA
Tag/ABIs : default/armeabi
----------
id: 4 or "Google Inc.:Google APIs x86:19"
Name: Google APIs x86
Type: Add-On
Vendor: Google Inc.
Revision: 4
Description: Android + Google APIs x86
Based on Android 4.4.2 (API level 19)
Libraries:
* com.google.android.media.effects (effects.jar)
Collection of video effects
* com.android.future.usb.accessory (usb.jar)
API for USB Accessories
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: WVGA800 (default), QVGA, WSVGA, WXGA800-7in, WQVGA400, WVGA854, WXGA720, WXGA800, WQVGA432, HVGA
Tag/ABIs : default/x86

创建工程

$ android create project --target android-10 --name MyFirstApp --path MyFirstApp --activity MainActivity --package com.example.myfirstapp
> Created project directory: MyFirstApp
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/src/com/example/myfirstapp
Added file MyFirstApp/src/com/example/myfirstapp/MainActivity.java
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/res
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/bin
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/libs
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/res/values
Added file MyFirstApp/res/values/strings.xml
Created directory /home/dean/work/gitlab_cloud/android/example/MyFirstApp/res/layout
Added file MyFirstApp/res/layout/main.xml
Added file MyFirstApp/AndroidManifest.xml
Added file MyFirstApp/build.xml
Added file MyFirstApp/proguard-project.txt
[email protected]:~/work/gitlab_cloud/android/example$ ls
MyFirstApp README
[email protected]:~/work/gitlab_cloud/android/example$ cd MyFirstApp/
[email protected]:~/work/gitlab_cloud/android/example/MyFirstApp$ ls
AndroidManifest.xml ant.properties bin build.xml libs local.properties proguard-project.txt project.properties res src

编译

执行以下的命令编译

ant debug


假设报以下错误:

[aapt] /opt/android-sdk-linux/build-tools/19.0.3/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

安装库:

sudo apt-get install lib32z1


部署程序到模拟器

$ adb install bin/MyFirstApp-debug.apk
97 KB/s (4858 bytes in 0.048s)
pkg: /data/local/tmp/MyFirstApp-debug.apk
Success


执行程序

好了,如今能够在模拟器里面执行程序了。 执行程序MainActivity。显示以下的文字:

Hello World, MainActivity

该文字事实上是定义在./res/layout/main.xml 文件里:

>
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, MainActivity"
/>



定义应用程序名称

假设想要改动Android中的应用程序名,不是在pom.xml中编辑,而是在src/values/strings.xml中定义,比方:



mvn_example1
Enter a message
Send
Settings
MainActivity








推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
author-avatar
杜_森后_665
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有