• 前言

在我学习android开发课程的过程中,我们通常只会关注编程语言上面的一些知识点与问题,而忽略了开发工具的使用上的一些遇到的一些知识,其实每一款IDE工具都是集编程语言大成而开发出来的,其中有很多东西是值得我们去学习和了解的,我们可以通过学习了解开发工具的方式来开拓我们的知识储备的广度,使我们的知识面得到更好的扩展,在以后的生活中必然会有所用处.

所以,我将开这篇文章记录下我在使用androidstudio,在学习android过程中所遇到的我认为需要记录下来的知识点,或一些操作.一些问题等相关的知识.


  1. 关于androidstudio在打开项目时gradle配置更新的问题

我们知道gradle是androidstudio中的一个十分重要的组件,它使得我们编辑的程序能够自动的转化为apk程序文件,每次我们运行android程序的时候,我们都可以看到androidstudio下的gradle构建的信息,并且,androidstudio中,gradle的配置也是十分重要的一环,它在很多时候都需要从网络上的远程仓库中获取相应的文件,所以我们也时常会碰见gradle需要更新,gradle正在下载相应文件的情况.

而有些情况下,我们在打开一个项目的时候,会卡在进度条下,又会在有些情况下我们更新gradle文件,完全跑不动,logcat视窗下一堆报错.使得在项目的运行上变得十分缓慢.

我们需要知道的是,这并不是Androidstudio的问题,而是由于在国内,我们想要访问到外网的资源,是十分艰难的,有时可能会直接完全无法访问的情况,所以在很多时候,我们需要使用资源在国内的镜像文件才能解决因网速而带来的问题.

androidstudio中,每个项目都有其gradle文件其储存的位置在对应项目中的gradle文件夹中的wrapper文件下.

我们知道上面的是一个jar包,应该是应用当项目中去的,然后我们随便使用一个代码编辑器打开:

我们可以观察到,这应该是就是当前项目gradle的配置文件了.

其中

distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

应该就是指定的更新下载地址了,我们将前面的\去掉然后访问一下:

我们会发现这就是一个下载链接,它自动为我们下载了对应版本的gradle文件.

那么它自动更新的gradle文件会保存在哪里呢?答案当然是在当前电脑的用户文件里,其实我么在前面关于android签名学习的时候就有点意识的,androidstudio的一些重要的配置文件都存放在当前电脑用户的文件中.而不是和安装目录保存在一起的:

我们找到上面的文件夹,我们就可以发现我们曾经历代使用过的gradle版本.

当我们在gradle自动更新时,因为网络的问题gradle更新缓慢,导致项目无法打开和构建时,我们不妨访问上面的gradle更新连接,自行手动下载gradle版本,然后放入到对应的版本文件下:

  1. 关于Androidstudio导入下载的项目gradle同步解析缓慢的问题

首先,我们要知道在导入他人的项目时,为什么会需要同步解析gradle文件,其实这个应该十分容易理解,每个人开发的项目使用的gradle版本,gradle配置都有不同,而gradle是android开发中自动构建apk项目的工具,那么我们要想运行他人的项目,当然需要同步解析他人项目的gradle版本与配置.

那么接下来我们就要考虑到为什么同步解析会如此缓慢.

这是因为同步解析需要访问当网络资源,而androidstudio中相关的资源存放在jcenter仓库中,而jcenter仓库对国内的使用十分不友好,几乎限制无法访问.所以我们从它那来进行网络同步解析gradle文件,自然会十分缓慢,甚至是无法完成同步.

那么我们的解决办法是什么呢?

我们已经知道了,gradle文件的同步配置是需要访问网络资源的,那么它自然会有一个访问途径的配置,我们只需要了解,并找到它,将其该为gradle资源在国内的镜像仓库路径即可.

镜像文件:其实十分容易理解,就是某个文件的一个复制版本嘛.既然国外资源无法访问,我们就将其镜像复制下来一份放在过国内,不就可以了吗.

  • 配置gradle依赖仓库的路径

我们首先找到当前项目的bulid.gradle文件,我们知道一个android项目有两个gradle文件,一个是项目下的,一个在app下.项目下的bulid.gradle就是配置整个项目gradle文件的依赖仓库以及一些更整个项目相关的gradle配置的文件,我们可以通过编辑器打开查看,当然也可以直接在androidstudio中查看:

我们可以观察到,其repositories(资料库)代码块中就编写有google,jcenter两个方法体,应该是代表了期资料库是从google,jcenter两个地方获取的.

接下来,我们可以找到国内的一些镜像仓库地址,我这里使用的是阿里的镜像仓库地址.

http://maven.aliyun.com/nexus/content/groups/public/

我们通过{}将其配置到gradle文件中:

当然不要忘记点击右上角的同步,同步一下我们的配置.

在同步好配置后,在之后需要访问获取网络资源依赖资源的时候就会首先从我们配置的镜像仓库查找.就不会再变的十分缓慢了.


  1. 如何更改androidstudio使其默认开启不会打开上次编辑的项目

我们知道,在使用androidstudio的时候,每次打开都会从上次编辑的工程开始,有时候这是一个很方便的功能,但有时候或许也会不便,因为我们不免会遇到这样的情况,我们上一个项目刚好已经完成,我这次打开需要选择其他的项目,这就使得我们必须等studio打开上一个项目之后再关闭上一个项目,然后在进入创建与选择项目的界面.

当我们想要关闭这个功能的时候,我们就需要关闭相关的配置了,我们打开studio中的设置视图,选择第一个选项卡打开系统设置(system settings)

我们找到reopen last project on startup(在启动时重新打开上一个项目)选项框,并关闭它.就可以了.

如此,我们再打开studio时打开的就是直接选择的界面了.


更新时间:

2019-4-21

23:51

[工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记的更多相关文章

  1. JavaScript URL传值过程中遇到的问题及知识点总结

    JavaScript URL传值过程中遇到的问题及知识点总结 Web系统开发过程中经常用到URL进行传值,刚刚接触时不太会解析,会出现中文乱码问题等. 1.父子页面之间的传值(在一个页面中以加载ifr ...

  2. Canesten 项目申请ICP备案过程中遇到的问题及知识点扩充

    遇到的问题:Canesten备案主体是Bayer *** Ltd., Shanghai Branch, 而提供的IP是 Bayer (China)limited,违背了电信要求的三一致原则,即备案主体 ...

  3. 【Gerrit】持续集成工具Jenkins的安装配置与使用过程中遇到的问题整理

    1.下载war包 https://jenkins.io/download/ 2.安装 java -jar jenkins.war Error: Feb 21, 2019 2:17:25 AM wins ...

  4. 利用sklearn对MNIST手写数据集开始一个简单的二分类判别器项目(在这个过程中学习关于模型性能的评价指标,如accuracy,precision,recall,混淆矩阵)

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  5. mysql 开发进阶篇系列 37 工具篇 perror (错误代码查看工具)与总结

    一.  perror 错误代码查看工具   在mysql 的使用过程中,可能会出现各种各样的error.这些error有些是由于操作系统引起的,比如文件或者目录不存在等等,使用perror的作用就是解 ...

  6. BI实施过程中的工具与服务

    成功的BI项目,不仅仅是应用了BI工具软件,还要具备完善的BI服务体系,才能称之为真正成功的商业智能bi项目. 现在的BI(商业智能)比起几年前的ERP一样,成为CIO们关注的焦点.在ERP等基础信息 ...

  7. Linux学习笔记(1)Linux虚拟机安装过程中的知识点及常用管理工具

    1. VMware的相关知识 (1)建议的VMware的配置: CPU 主频1GHz以上 内存 1GB以上 硬盘 分区空闲空间8GB以上 (2)VMware创建快照 快照的作用是保存虚拟机的现有状态, ...

  8. 推荐2一个在Java编码过程中得心应手的工具

    推荐2在编码过程中的减小不仅编码的量,挺easy工具上手:可适用Java反思与单探头Assert. 1 Mirror:Java反思 简单介绍 官网:http://projetos.vidageek.n ...

  9. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    前言 最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种. 第一种是单例模式的类. 第二种是另外定义一个Service,直接通过Service来实现ftp的上 ...

随机推荐

  1. iOS实现应用更新及强制更新

    调用更新接口返回字段: result =     {             descr = "";             isupdate = 1;//是否更新         ...

  2. 2018-2019 ICPC, NEERC, Southern Subregional Contest

    目录 2018-2019 ICPC, NEERC, Southern Subregional Contest (Codeforces 1070) A.Find a Number(BFS) C.Clou ...

  3. Java是值传递还是引用传递?

    Java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题.这个问题一般是相对函数而言的,也就是Java中所说的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法的两 ...

  4. browser-sync + http-proxy-middleware 配置代理跨域

    写代理js文件下面是文件内容 /** * Module dependencies. */ var browserSync = require('browser-sync').create() var ...

  5. C# 中传参中的OUT 和 ref 区别 笔记

    //out传参前需要对参数进行赋值处理,ref则不需要.//out.ref 传参都可以对值进行改变 1 static void Main(string[] args) { ; //int J = 10 ...

  6. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习7

    #include <iostream> #include <string> #include <cctype> using namespace std; int m ...

  7. 微信网页悬浮窗交互效果的web实现

    一.微信的悬浮窗交互效果 微信更新后,发现多了个悬浮窗功能.公众号阅读,网页浏览回退后默认会出现.再点击,可以回到刚才阅读的地方.于是,再也不会遇到回复老婆的信息,再切换回来重新找刚才阅读东西的麻烦了 ...

  8. prometheus+grafana 监控生产环境机器的系统信息、redis、mongodb以及jmx

    介绍: 为了更好的对生产环境的一些中间件和操作系统的运行情况进行可视化的展示,近期了解了下prometheus加上grafana来实现这种效果,由于prometheus是新出来的开源项目,所以,监控的 ...

  9. dedecms 后台可以上传mp4,但无法选择

    原文链接 找到 /include/dialog/select_media.php 找到rmvb,在其后面加 “|mp4” 即可. 1

  10. this全解js

    转(掘金) this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相信很多JavaScript开发者并不是非常清楚它究竟指向的是什么.听说你很 ...