姚陆浩的博客

用文字构建一个理想的世界


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

  • 日程表

  • 搜索

Android 中的 Gradle

发表于 2017-12-19 | 分类于 Android , Gradle | | 阅读次数:

如何理解Gradle? Gradle在Android的构建过程中有什么作用?

gradle 是一种高级构建工具包,它可以自动化执行和管理构建流程,同时也允许您定义灵活的自定义构建配置。每个构建配置均可自定义一组代码和资源,同时对所有应用版本共有的部分加以重复利用。Android Plugin for Gradle 与这个构建工具包协作,共同提供专用于构建和测试 Android 应用的流程和可配置设置。

Gradle在Android的构建过程中有什么作用,就是自动化执行编译应用资源和源代码,然后打包成可供测试、部署、签名和分发的 APK。

实践题

因为我对 gradle 了解甚微,因此没能做出时间题,于是我照着任玉刚提供的参考答案实现了一下,运行成功。

代码如下:

阅读全文 »

关于 View 的知识

发表于 2017-12-12 | 分类于 Android , View | | 阅读次数:

View的getWidth()和getMeasuredWidth()有什么区别吗?

从名字上可以看出,measuredWidth/height 是用在测量和布局之间的阶段。

举例说明:

父控件要求子控件测量它自己,子控件说,我需要 200 像素 x 200 像素的空间。这就是 measuredWidth/height。

在布局阶段期间,如:在 onLayout 方法。这个方法可以使用它的子控件的 measuredWidth/height 或者通过调用 view 的 layout 方法重新发配新的 width/height。

现在,我们可以得知, onLayout方法调用 childview.layout(0,0,150,150),这个 View 的 width/height 和 mersured width/height 是不同的(0,0,150,150 是重新赋值的)。

阅读全文 »

关于 startActivityForResult

发表于 2017-12-05 | 分类于 Android , Activity | | 阅读次数:

startActivityForResult的使用场景是什么?onActivityResult回调里面的resultCode和requestCode含义是什么?

  • 场景:如果你希望启动另一个 Activity 并接受返回的结果,需要调用 startActivityForResult() 方法。例如:你启动照相应用并需要接收拍摄的照片最为结果;你启动联系人应用并需要接收联系人详情信息最为结果。
  • requestCode:当你想启动一个带有返回结果的 Activity 的时候,你需要传递额外的参数,这就是调用 startActivityForResult() 时,需要传递的 requestCode —— 请求码,该参数用于识别的你的请求的请求码。当你收到 Intent 结果是,回调会提供相同的请求码,以便你的应用可以正确识别结果并确定如何处理它。
  • resultCode:当用户完成后续 Activity 并返回时,系统会调用你的 Activity 的 onActivityResult() 方法,该方法包括三个参数,其中一个就是 resultCode —— 结果码。如果操作成功,结果是 RESULT_OK;如果用户退出或操作处于某种原因失败,则结果是 RESULT_CANCELED。

Activity A启动B的时候,在B中何时该执行setResult ?setResult可以位于Activity的finish方法之后吗?

阅读全文 »

什么是机器学习

发表于 2017-12-02 | 分类于 深度学习 | | 阅读次数:

本系列博客为 《白话深度学习与 TensorFlow》一书的阅读分享,意图在于,用文字输出的形式检验本人对书籍的理解程度,本人为第一次接触深度学习,如对知识点理解不透彻或有误解,还请您不吝赐教,给与评论,加以指正。

关于留言方式,您可以通过邮箱 yaoluhao@sina.com 联系到我;同时,我会在文章的最后附上简书的网址,以便于针对某一篇文章讨论,期待大家真挚反馈。

阅读内容

我是本周二拿到《白话深度学习与 TensorFlow》这本书,这个礼拜,我把前言和第一章认真的看完了,感觉这本书白话二字用的很好,书中列举的很多生活中的例子来类比一些比较难懂的概念,还列举了人工智能在生活中的一些好玩和使用的功能,让我们平缓的走入人工智能领域。

阅读全文 »

activity 启动模式

发表于 2017-11-30 | 分类于 Android , Activity | | 阅读次数:

1. Activity 的启动模式有哪几种,分别用于什么场景?

目前有四种启动模式:standard(标准模式)、singleTop(栈顶单例模式)、singleTask(栈内单例模式)、singleInstance(单独任务栈模式)。

应用场景:

  • standard:Activity 默认使用的是 standard,一般配置界面使用这种模式
  • singleTop:在任务栈内开启此模式下的 Activity,会进入栈顶,不会创建新的 Activity 实例。适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的,这样的话可以从外界可能多次跳转到一个界面。
  • singleTask:在任务栈内开启此模式下的 Activity,会 kill 掉此 Activity 上边的所有实例并进入栈顶。此模式的 Activity 适用于程序入口点,比如,我的实际应用中,程序开启后监听 usb 的状态,如果有 usb 设备挂载,程序会询问是否开启这个程序,点击是,会重新开启此程序,此时程序会有两个首页在运行,而我们有一个入口就可以了,所以可以采用 singleTask 。
  • singleInstance:在任务栈内开启此模式下的 Activity,会创建一个新的任务栈,这个任务栈中只有此模式下的 Activity 。在做一些特殊场景下的应用,比如Launcher的主屏时,可能会使用得到。
阅读全文 »

版本号的定义

发表于 2017-11-30 | 分类于 自定义内容 | | 阅读次数:

前言

最近在写自己的开源项目的时候,用到了版本号,但是我之前没有对版本号进行过定义,因此不知道我的这个版本号应该怎么定义,因此这篇文章应运而生,初步定义一下版本号的意义

版本号格式

v0.1.2-alpha

版本号解释

名称 描述 备注
0 程序发生重大更新,通常为核心层的重大调整,程序极有可能不向后兼容 0代表处于开发阶段,更新后,后面的数字置为0
1 程序引入的新的功能 无
2 修复bug 无
alpha 程序开发阶段 alpha:测试阶段;beta:稳定阶段;rc:即将发布阶段

清晰地理解 Service

发表于 2017-11-24 | 分类于 Android , Service | | 阅读次数:

清晰地理解 Service

1.Service的start和bind状态有什么区别?

startService(),开启一个服务,服务回调onStartCommand(),其他组件的数据可以在服务中执行,但不可与服务交互。

bindService(),绑定一个服务,服务回调bindService(),该回调返回IBind对象,通过这一对象,其他组件可以和服务进行交互。

2. 同一个Service,先startService,然后再bindService,如何把它停止掉?

startService开启服务,当Service执行完以后,需调用stopSelf() 或 stopService()方法停止Service。

bindService`绑定服务,当Service不再与组件绑定时,该Service将被destroy。

startService —> bindService —> unbindService —> stopService

阅读全文 »

如何获得安卓模拟器 root 权限

发表于 2017-08-12 | 分类于 解决方案 | | 阅读次数:

前言

最近在使用 Android 模拟器的时候,想到 sd 卡中,寻找我下载的文件,使用 DDMS 发现看 /data/data 下面的文件。

转念一想,没关系我可以用 adb 命令来找,结果发现用命令会出现没有权限的问题,因此将此事写成博客,以方便查找。

答案

  • 答案出处:http://stackoverflow.com/questions/5095234/how-to-get-root-access-on-android-emulator
  • 需要执行如下命令,经我测试,确实可以解决模拟器访问文件权限问题
1
2
3
4
adb shell
exit
adb root
adb shell

AppCompat 主题中全屏模式

发表于 2017-08-02 | 分类于 解决方案 | | 阅读次数:

遇到的问题

  • V7 包中我们最常用的 Theme.AppCompat 主题系列中没有全屏模式,在网上查询了一下才得以解决

参考方案链接

Full Screen Theme for AppCompat

参考解决方案

当你在你的应用中使用 Theme.AppCom (全屏主题),你可以通过添加如下样式的代码使用全屏主题

1
2
3
4
5
6
7
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen"
parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>

然后在你的的清单文件中显示出来。

1
2
3
4
<activity
android:name=".activities.FullViewActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>

hexo + Next 搭建个人博客(仿)

发表于 2017-04-09 | 分类于 hexo | | 阅读次数:

Hexo 简介

Hexo 是一个快速、简洁且高效的静态站点生成框架,它基于 Node.js 。因此有以下特点:

  •  超快速度

    Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
  •  支持Markdown

    Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。
  •  一件部署

    只需一条指令即可部署到Github Pages,或其他网站
  •  丰富的插件

    Hexo 拥有强大的插件系统,安装插件可以让 Hexo 支持 Jade, CoffeeScript。
阅读全文 »
1234
bleedyao

bleedyao

时间考验一切,经得起时间考验的就为人所信仰

31 日志
25 分类
12 标签
GitHub
© 2017 — 2018 bleedyao
由 Hexo 强力驱动
| |
主题 — NexT.Gemini v5.1.3