gradle下载很慢

解决问题的方法如下:

使用文件管理器 打开用户主目录

windows平台: c:\Users\用户名\.gradle

macos平台: /Users/用户名/.gradle

linux平台: /home/用户名/.gradle

找到./gradle/wrapper/dist/ 目录

找到对应的gradle-版本好-all的文件夹,进入到里面,如下图:

去官方网站下载这个版本号对应的安装包 https://services.gradle.org/distributions/

把下载下来的zip压缩文件 放到对应版本的子目录名里面 (目录名由字母和数字组成)



将压缩文件放入这个目录,我解压了一下,好像没有影响编译。

android 项目下载依赖jar包慢

解决:

build.gradle 文件中添加国内镜像

  1. repositories {
  2. maven{ url 'https://maven.aliyun.com/repository/public/'}
  3. jcenter()
  4. //maven {url 'https://jitpack.io'}
  5. //maven {url 'https://maven.google.com'}
  6. }

References

Android videoview

播放网络视频

AndroidMainfest.xml 新增网络的访问权限

  1. <uses-permission android:name="android.permission.INTERNET"/>

在布局中添加

  1. <VideoView
  2. android:id="@+id/video_preview"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:layout_gravity="center" />
  1. //引入包
  2. import android.widget.VideoView;
  3. import android.widget.MediaController;
  4. import android.net.Uri;
  5. //原生的videoview和控制
  6. private VideoView mVideoView;
  7. private MediaController mMediaController;
  8. mVideoView = findViewById(R.id.video_preview);
  9. mMediaController = new MediaController(MainActivity.this);
  10. //将路径转换成uri
  11. Uri uri = Uri.parse(videoUrl);
  12. mVideoView.setVideoURI(uri);
  13. mVideoView.setMediaController(mMediaController);
  14. mVideoView.getBufferPercentage();
  15. mVideoView.seekTo(0);
  16. mVideoView.requestFocus();

References

Android 下载网络的mp4文件

AndroidMainfest.xml 新增文件写入的权限

  1. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

代码记录:

  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.BufferedInputStream;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import android.os.Environment;
  7. import java.net.URL;
  8. import java.net.HttpURLConnection;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import android.content.Intent;
  12. import android.app.ProgressDialog;
  13. //使用
  14. final ProgressDialog pd;
  15. pd = new ProgressDialog(MainActivity.this);
  16. pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  17. pd.setMessage("下载中...");
  18. pd.setCanceledOnTouchOutside(false);
  19. pd.show();
  20. new Thread() {
  21. @Override
  22. public void run() {
  23. try {
  24. File file = getFileFromServer('http://www.example.com/example.mp4', pd);
  25. sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file)));
  26. sleep(1000);
  27. pd.dismiss(); // 结束掉进度条对话框
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. }.start();
  33. /**
  34. * 将MP4文件存入到 应用的路径 files下
  35. * 固定是: Android/data/你的包名/files
  36. * @param path
  37. * @param pd
  38. * @return
  39. * @throws Exception
  40. */
  41. public File getFileFromServer(String path, ProgressDialog pd) throws Exception {
  42. // 如果相等的话表示当前的sdcard挂载在手机上并且是可用的
  43. if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
  44. String path3 = getExternalFilesDir(null).getPath();
  45. File mediaStorageDir = new File(path3);
  46. if (!mediaStorageDir.exists()) {
  47. if (!mediaStorageDir.mkdirs()) {
  48. showPromptToast("文件夹创建失败"+path3);
  49. return null;
  50. }
  51. }
  52. URL url = new URL(path);
  53. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  54. conn.setConnectTimeout(5000);
  55. // 获取到文件的大小
  56. pd.setMax(conn.getContentLength());
  57. InputStream is = conn.getInputStream();
  58. if (!mediaStorageDir.exists()) {
  59. mediaStorageDir.mkdir();
  60. }
  61. // 文件根据当前的毫秒数给自己命名
  62. SimpleDateFormat myFmt = new SimpleDateFormat("yyyyMMddHHmmss");
  63. Date now = new Date();
  64. String videoFileName = "D" + myFmt.format(now);
  65. String suffix = ".mp4";
  66. File file = new File(mediaStorageDir + File.separator + videoFileName + suffix);
  67. FileOutputStream fos = new FileOutputStream(file);
  68. BufferedInputStream bis = new BufferedInputStream(is);
  69. byte[] buffer = new byte[1024];
  70. int len;
  71. int total = 0;
  72. while ((len = bis.read(buffer)) != -1) {
  73. fos.write(buffer, 0, len);
  74. total += len;
  75. // 获取当前下载量
  76. pd.setProgress(total);
  77. }
  78. fos.close();
  79. bis.close();
  80. is.close();
  81. return file;
  82. } else {
  83. return null;
  84. }
  85. }

References

edittext focus

1.在布局文件中给edittext的父控件增加两个属性(我编写代码时,没有给Edittext添加这2个属性)

android:focusable="true"

android:focusableInTouchMode="true"

2.直接调用edittext的clearFocus()方法,不过该方法有时候会不生效

  1. //searchView.setFocusable(true);
  2. //searchView.setFocusableInTouchMode(true);
  3. //searchView.requestFocus();
  4. searchView.clearFocus();//失去焦点
  5. //searchView.requestFocus();//获取焦点

References

Android 编译笔记20191205的更多相关文章

  1. android 应用笔记

    android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...

  2. 【转】Android开发笔记(序)写在前面的目录

    原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...

  3. Android NDK笔记

    目录 Android NDK笔记 AOSP Android repository Android SDK / SDK Tools NDK cmake && ninja lldb adb ...

  4. [置顶] Android开发笔记(成长轨迹)

    分类: 开发学习笔记2013-06-21 09:44 26043人阅读 评论(5) 收藏 Android开发笔记 1.控制台输出:called unimplemented OpenGL ES API ...

  5. 【转】 Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件

    目录(?)[-] 在AIDL中定义服务接口 根据AIDL文件自动生成接口代码 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.n ...

  6. 【转】 Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart

    目录(?)[-] 建立测试环境 开发环境导入第三方JAR HTTP Post Multipart小例子 HTTP POST不仅可以通过键值对传递参数,还可以携带更为复杂的参数,例如文件.HTTP Po ...

  7. 【转】Pro Android学习笔记(四):了解Android资源(下)

    处理任意的XML文件 自定义的xml文件放置在res/xml/下,可以通过R.xml.file_name来获取一个XMLResourceParser对象.下面是xml文件的例子: <rootna ...

  8. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  9. 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期

    在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...

随机推荐

  1. 洛谷4721 【模板】分治 FFT

    传送门 久违的多项式全家桶= =+ 分治NTT 用的就是cdq分治的思想 对于当前递归到的区间[l,r] 我们处理出[l,mid]对[mid+1,r]答案的贡献 然后分治递归求解就可以啦qwq 这个贡 ...

  2. 分布式架构的CAP原理

    CAP 定理的含义   一.分布式系统的三个指标 1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标. Consistency Availability Parti ...

  3. Codeforces Round #578 (Div. 2) E. Compress Words (双哈希)

    题目:https://codeforc.es/contest/1200/problem/E 题意:给你n个单词,你需要把他合成成一个句子,相邻的两个单词,相邻部分相同的话可以把其中一个的删掉 思路:因 ...

  4. JQUERY的$(function(){})和window.onload=function(){}的区别【转】

    在Jquery里面,我们知道入口函数有两种写法:$(function(){}) 和$(document).ready(function(){}) 作用类似于传统JavaScript中的window.o ...

  5. 26 October in 614

    Practice tower 有 \(N\,(2\le N\le 600000)\) 块砖,要搭一个 \(N\) 层的塔,要求:如果砖 \(A\) 在砖 \(B\) 上面,那么 \(A\) 不能比 \ ...

  6. 2018-2019-2 20175120 实验五《Java网络编程》实验报告

    实验报告封面 课程:Java程序设计 班级:1751班 姓名:彭宇辰 学号:20175120 指导教师:娄嘉鹏 实验日期:2019年5月26日 实验时间:13:10 - 15:25 实验序号:20 实 ...

  7. c++文件拷贝

    #include<fstream>void Copyfile( char* FileSource, char* FileItem ){fstream fsCopee( FileSource ...

  8. Android深度探索-卷1第一章心得体会

     本章介绍了安卓系统移植与驱动开发的概述,安卓的系统架构有四层:1 Linux内核,2 c/c++代码库, 3 Android SDK API, 4 应用程序 在读的过程中看到了专业名词,查了查,长点 ...

  9. 三种JavaScript 消息框

    prompt 提示框 <html><head><script type="text/javascript">function disp_prom ...

  10. 视区相关单位vw, vh ,vm,CSS/CSS3长度、时间、频率、角度单位大全

    一.CSS长度值 em 相对于父元素的字体大小 ex 相对于小写字母"x"的高度 gd 一般用在东亚字体排版上,这个与英文并无关系 rem 相对于根元素字体大小 vw 相对于视窗的 ...