Android Studio使用心得

说实话 開始接触这个工具 真的认为非常恶心 毕竟大陆被墙  非常多东西用起来不是非常方便 并且Eclipse转到Android Studio还是一个跨度 废话不多说  以下 讲下我遇到的问题

1. 安装的时候(Setup Wizard - Download Components) 这个要下载非常长时间 甚至下载不了 (PS: 这个选择并下载2.25G的组件是studio的一个bug,评论里有人提醒,感谢这位同学。

假设网速不行想跳过这步的能够在bin文件夹的idea.properties添加一行:disable.android.first.run=true即可了。mac平台的右键安装包->Show Package Contents 就找到bin文件夹了。)

 

2.新建项目成功后会下载Gradle,貌似这个过程不FQ也是能够下载,可是訪问特别慢,建议FQ下载。那么下载的Gradle到什么地方呢?  打开C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.10-all\d90a2yjknzzhpcfgm937zpcte 你会看到须要的gradle版本号 比如我的是gradle-1.10 我会去百度上搜这个下载 一大堆 下载之后把gradle-1.10-all.zip拷贝到此文件夹下(C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.10-all\d90a2yjknzzhpcfgm937zpcte)

 

注:假设是导入一个项目一直处于Building 那么去改动项目Gradle文件夹下的gradle-wrapper.properties 文件中边的distributionUrl 最后边改成已经下载的gradle版本号比如 我已经有gradle-2.2.1-all.zip 可是没有gradle-2.4-all.zip的 所以我会改成distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

 

假设导入项目之后 下载Android studio那么结束掉任务 去改动项目根文件夹下的build.gradle
改成你如今的版本号

 dependencies {
        classpath 'com.android.tools.build:gradle:1.2.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

 

 

3. 关于build.gradle的配置:

   主projectapp:

    apply plugin: 'com.android.application'  表示申明此project为主project

 

 dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])  默认不须要多解释

compile project(':StudioKlowerBase')}  申明主工程依赖的Library 注意拼写规则, 名字要与你的Library名字一样

 

buildTypes {release {minifyEnabled true(表示打包签名的时候 是正式包 会运行混淆代码) 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      定义代码混淆文件 注意:proguard-rules.pro要放在主project的文件夹下
    }
}
完整代码例如以下:
apply plugin: 'com.android.application'android {compileSdkVersion 19buildToolsVersion "19.1.0"defaultConfig {applicationId "com.klowerbase.test"minSdkVersion 11targetSdkVersion 19versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}
}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile project(':StudioKlowerBase')
}

--Library 工程的配置
apply plugin: 'android-library'定义为Library
dependencies {classpath 'com.android.tools.build:gradle:1.2.2' 定义编译的gradle版本号
 }
完整代码例如以下:
buildscript {repositories {mavenCentral()}dependencies {classpath 'com.android.tools.build:gradle:1.2.2'}
}
apply plugin: 'android-library'dependencies {compile fileTree(include: '*.jar', dir: 'libs')
}android {compileSdkVersion 19buildToolsVersion "19.1.0"sourceSets {main {manifest.srcFile 'AndroidManifest.xml'java.srcDirs = ['src']resources.srcDirs = ['src']aidl.srcDirs = ['src']renderscript.srcDirs = ['src']res.srcDirs = ['res']assets.srcDirs = ['assets']}// Move the tests to tests/java, tests/res, etc...instrumentTest.setRoot('tests')// Move the build types to build-types/<type>// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...// This moves them out of them default location under src/<type>/... which would// conflict with src/ being used by the main source set.// Adding new build types or product flavors should be accompanied// by a similar customization.debug.setRoot('build-types/debug')release.setRoot('build-types/release')}
}

项目的配置 代码例如以下
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.2.2'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {jcenter()}
}
 
解决Task '' not found in root project '***'.
方法1:删掉.iml里的<component name="FacetManager"> ... </component>
方法2:删掉.iml跟.idea目录 又一次导入程序
经过实验:另外一种方法 有效
因为我用的gradle-2.2.1 项目结构有些变化,例如以下截图:
<img src="https://img-blog.csdn.net/20150720130051120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

最后在附上一些经常使用的快捷键:

Ctrl+Alt+L  格式化代码

Ctrl+Alt+space 代码提示

Ctrl+Alt+O 优化导入的类和包

Alt+Insert 生成代码(如get,set方法,构造函数等)

Ctrl+Shift+Space 自己主动补全代码

Ctrl+空格 代码提示

Ctrl+R 替换

Ctrl+Y 删除行(ctrl+x不是删除行。是剪切。

假设不选中,则为剪切当行。

ths for 貌似掉线) Ctrl+D 复制行 Ctrl+/ 或 Ctrl+Shift+/  凝视(// 或者/*...*/ )

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wzjhoutai/p/6719070.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS用户和用户组的操作

2019独角兽企业重金招聘Python工程师标准>>> CentOS用户和用户组的操作 長得太帥忚四種檌 关注 2018.05.12 16:40* 字数 312 阅读 115评论 0喜欢 0 用户组的操作 1.添加用户组&#xff1a; groupadd 组名2.修改组名 groupmod -n 新组名 原组名删除用户组groupdel 组…

vue webpack配置分析

写在前面&#xff1a;作为 Vue 的使用者我们对于 vue-cli 都很熟悉&#xff0c;但是对它的 webpack 配置我们可能关注甚少&#xff0c;今天我们为大家带来 vue-cli#2.0 的 webpack 配置分析 vue-cli 的简介、安装我们不在这里赘述&#xff0c;对它还不熟悉的同学可以直接访问 v…

Linux用户空间与内核地址空间

Linux 操作系统和驱动程序运行在内核空间&#xff0c;应用程序运行在用户空间&#xff0c;两者不能简单地使用指针传递数据&#xff0c;因为Linux使用的虚拟内存机制&#xff0c;用户空间的数据可能被换出&#xff0c;当内核空间使用用户空间指针时&#xff0c;对应的数据可能不…

关于主键的设计、primary key

主键&#xff1a;用于唯一标识一个表中一行数据。 外键&#xff1a;用于建立两个表之间的关系&#xff0c;A表中有一列是B表中的主键&#xff0c;那么A表中这列的数据就受到B表主键的约束。 那么关于主键应该如何设计呢&#xff0c;这里我说下优缺点&#xff1a; 1.用自动增长字…

浅谈微信smali注入

作者&#xff1a;郭少雷 搞android搞了几年也没搞出个啥牛逼app出来&#xff0c;眼看时下最火的app微信如此火热&#xff0c;实在想搞搞它&#xff0c;索性就想着给它加点东西进去。 以下内容纯属本人个人爱好&#xff0c;仅限个人学习android用途以及对android的深入了解。 首…

从0到1使用Kubernetes系列(四):搭建第一个应用程序

上一篇文章《从0到1使用Kubernetes系列&#xff08;三&#xff09;&#xff1a;使用Ansible安装Kubernetes集群》中&#xff0c;我们搭建了一套Kubernetes集群&#xff0c;接下来将在本文中介绍如何使用Kubernetes部署一个Nginx并通过Pod IP、Service IP、Ingress这三种方式访问…

Embeded linux之移植iptables

一、内核环境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

数据仓库工具。构建在hadoop上的数据仓库框架&#xff0c;可以把hadoop下的原始结构化数据变成Hive中的表。&#xff08;主要解决ad-hoc query&#xff0c;即时查询的问题&#xff09; 支持一种与SQL几乎完全相同的语言HQL。除了不支持更新&#xff0c;索引和事务&#xff0c;几…

Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先获得应用程序目录的路径&#xff0c;在该目录下有三个文件夹&#xff1a;文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的…

检测raid类型和磁盘坏道脚本

#!/bin/sh #脚本功能&#xff1a; #安装工具MegaCli64 #Host Information&#xff1a;主机名和ip地址 #Raid Information&#xff1a;raid信息和充电状态 #WARNING Information&#xff1a;MediaErrcount检测坏块和哪块盘 #Disk Information&#xff1a;磁盘信息 #上传MegaC…

简单论述市场营销管理的基本过程

http://www.chinadmd.com/file/uvc3uaosocwevsetrzpaereo_1.html

Javascript-Switch

JavaScript Switch 语句 请使用 switch 语句来选择要执行的多个代码块之一。 语法 switch(n) { case 1:执行代码块 1break; case 2:执行代码块 2break; default:n 与 case 1 和 case 2 不同时执行的代码 }工作原理&#xff1a;首先设置表达式 n&#xff08;通常是一个变量&…

《SpringBoot揭秘 快速构建微服务体系》读后感(三)

SpringApplication&#xff1a;SpringBoot程序启动的一站式解决方案 深入探索SpringApplication执行流程 因为书上的版本是1.2的&#xff0c;比较老&#xff0c;这里参考http://blog.csdn.net/zxzzxzzxz123/article/details/69941910 public ConfigurableApplicationContext ru…

装饰器函数

1.装饰器 ​ 装饰器&#xff1a;在不改变原函数的调用方式和函数&#xff0c;额外的增加功能 简单装饰器def timer(func):def inner():print(time.time())func() # 原来的函数return inner ​ timer # func1 timer(func1) def func1():print(func1) 函数带返回值def timer…

6G SDI/12G SDI 基带信号无压缩传输方案介绍

认知数字像素分辨率&#xff1a; 首先从分辨率(数字像素)角度来讲&#xff0c;从标清时代走到高清&#xff0c;从720x576到现在的1920x1080&#xff0c;宽高比从4:3到16:9&#xff0c;这个是我们比较熟悉的&#xff0c;4K实际上是建立在高清基础之上的&#xff0c;我们称之为“…

4月18日

u盘丢了&#xff0c;毁灭性的灾难 希望明天可以找到它&#xff0c;不然万字的策划案就要重写 这是一个灾难 转载于:https://www.cnblogs.com/dandansang/p/6731174.html

玩转SSH端口转发

ssh端口转发(tunnel) 我们在实施项目部署时经常会遇到一种问题&#xff0c;那就是当我们给一些安全系数高的客户部署服务时&#xff0c;大多都不会给我们提供公网访问的权限&#xff0c;但是很多时候为了方便又会允许服务器直接访问公网&#xff0c;遇到这种情况大多有两种办法…

12.4日团队工作总结

今天团队的主要任务是注重于画图工具的设计&#xff0c;这就意味着我们首要的任务是将画图工具设置出来并可以完整运行&#xff0c;接下来才能顾及之前的改图软件&#xff0c;但今天在设计的过程中&#xff0c;遇到了两者无法无缝结合的问题&#xff0c;目前还没解决。 转载于:…

WIFI DFS测试介绍

http://www.eefocus.com/summer12200/blog/09-02/166038_b9094.html 1. 概述: 目前在802.11系列标准中&#xff0c;涉及物理层的有4个标准&#xff1a;802.11、802.11b、802.11a、802.11g。根据不同的物理层标准&#xff0c;无线局域网设备通常被归为不同的类别&#xff0c;如…

git 远程仓库版本的回退以及git reset 几种常用方式记录

由于 github push 了两个比较潦草的commit, 自己很不满意&#xff0c;又不想重新开vpn进行上传&#xff0c;所以找了一下相关的教程。 最后研究了一下&#xff0c;原理为先在本地还原到你想要的commit,然后强制push 到远程仓库&#xff0c;强制将远程仓库还原到你想要的commit.…