Allen's Blog

当你的才华还撑不起你的野心时,你就应该静下心来学习


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

如何通过 GitHub Pages 和 Jekyll 来创建个人博客网站!

发表于 2016-01-21   |   分类于 博客   |  

本文翻译自:https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/

我最近都在忙着将博客从WordPress迁移到Jekyll上,说到Jekyll,这是一个构建轻量化的,静态的网页生成器,我们可以将生成好的网页代码托管在Github Pages上面。 尽管Jekyll的主题定制和工作流程都很方便,但是,完成整个迁移的过程花费的时间比我预期的时间还是要长了一些。

本文中我们将讨论一下几个方面:

  • 如何快速搭建和设置Jekyll支持的博客;
  • 如何避免使用Jekyll中,遇到的一些常见的问题;
  • 如何导入WordPress博客内容,使用你自己的域名,以及你自己的编辑器;
  • 如何通过Liquid主题模板在Jekyll中定制你喜欢的主题;
  • 还有Jeyll 2.0中的新特性,其中包括Sass, CoffeeScript支持和collections.
阅读全文 »

那份我期盼的简历

发表于 2016-01-18   |   分类于 杂谈   |  

大赞,关于程序员简历。原文地址。

到目前为止接近四年面试官经验,加上经常帮朋友面人,自己也有几次换工作的经历。
“简历中的要与不要”这个话题还是比较有发言权的

不要

(1) 不要用任何招聘网站的模板、不要 Word 版
尤其是智联招聘、51job 这类该被时代淘汰的站点。

维护一份 Word 版(发送时请用 PDF),每年更新一次,不跳槽,也能梳理下自己。当然我的建议是跳不跳不重要,一两年看次市场行情、也顺便了解业内公司在做啥。

(2) 不要用“精通”二字
你说你精通多线程,简单聊下“最大并发数开多少合适、线程怎么停止”都不知道;

精通 Java,就不聊字节码、加载器、内存回收算法了,几个字符串相关类区别、接口编程、集合类总该了解吧。

个人简历一直是熟悉 Android xx 部分、熟悉 Java。“精通”真的只能逗逗那些不靠谱公司。

阅读全文 »

Android 应用在系统内的存在方式

发表于 2016-01-16   |   分类于 Android   |  

碎碎念:关于 Android 应用在系统内的存在方式。

Android 应用在安装到设备后,每个 Android 应用都运行在自己的安全沙箱内.

你需要知道的是:

  • Android 操作系统是一种多用户的 Linux 系统,其中的每个应用都是一位不同的用户;
  • 默认情况下,系统会为每个应用分配一个唯一的 Linux 用户 ID (该 ID 仅由系统使用,应用并不知晓)。系统为应用中的所有文件设置权限,使得只有分配给该应用的用户 ID 才能访问这些文件;
  • 每个进程都具有自己的虚拟机(VM),因此应用代码是在与其他应用隔离的环境中运行;
  • 默认情况下,每个应用都在其自己的 Linux 进程内运行。Android 会在需要执行任何应用组件时启动该进程,然后在不再需要该进程或系统必须为其他应用恢复内存时关闭该进程。

Android 系统可以通过这种方式实现 最小权限原则。也就是说,默认情况下,每个应用都只能访问执行其工作所需的组件,而不能访问其他组件。这样便营造出一个非常安全的环境,在这个环境中,应用无法访问系统中其未获得权限的部分。

不过,应用仍然可以通过一些途径与其他应用共享数据以及访问系统服务:

  • 可以安排两个应用共享同一 Linux 用户 ID,在这种情况下,他们能够相互访问彼此的文件。为了节省系统资源,可以安排具有相同用户 ID 的应用在同一 Linux 进程中运行,并共享同一 VM(应用还必须使用相同的证书签署);
  • 应用可以请求访问设备数据(如用户的联系人,短信,SD 卡,相机,蓝牙,etc.)的权限。所有应用权限都必须由用户在安装是授予。
    阅读全文 »

Android 面试题整理

发表于 2016-01-13   |   分类于 Android   |  

本文转自: http://www.jianshu.com/p/a22450882af2

三金四银,又到了一年一度的跳槽季。也许有不少Android程序员开始摩拳擦掌蠢蠢欲动了。结合以往自己的经历,今天给大家总结下Android面试题,希望有帮助。

1:Activity 生命周期?

这几乎是个老少咸宜,永远不会过时的问题,而且极有可能是第一个问题。这个问题当然没什么好讲的啦,死记硬背是没什么用的了,关键是理解。本人就曾遇到这个问题的变种问题,问 onStart(),与 onResume() 有什么区别?如果面试官抛出这个问题,是不是有点措手不及。今天又听说有同学遭遇了更变态的问题:什么情况下 Activity 走了 onCreat(),而不走 onStart(),这简直就是脑筋急转弯嘛。

2:service 生命周期?

这里要注意 service 有两种启动方式,startService() 和 bindService()

阅读全文 »

Android 小技巧之将 TextView 的文字竖直排列

发表于 2016-01-10   |   分类于 Android   |  

场景:今天在项目中将按钮中的文字竖直排列的需求。

解决方案:只需指定下面两个属性即可。

1
2
android:layout_width="wrap_content"
android:ems="1"
注意:对英文无效!

Android 性能优化之如何避免 Overdraw

发表于 2016-01-06   |   分类于 Android 性能优化   |  

简书上关于 Android 性能优化之 Overdraw 方面不错的文章。
原文地址:http://www.jianshu.com/p/145fc61011cd

什么是 Overdraw?

Overdraw 就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到 CPU 的一组绘图命令和 GPU 的一些操作,当这个操作耗时超过 16.67ms 时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少 Overdraw 的发生。
Android 提供了测量 Overdraw 的选项,在开发者选项-调试GPU过度绘制(Show GPU Overdraw),打开选项就可以看到当前页面 Overdraw 的状态,就可以观察屏幕的绘制状态。该工具会使用三种不同的颜色绘制屏幕,来指示 overdraw 发生在哪里以及程度如何,其中:

  • 没有颜色: 意味着没有 overdraw。像素只画了一次。
  • 蓝色: 意味着 overdraw 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
  • 绿色: 意味着 overdraw 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
  • 浅红: 意味着 overdraw 3倍。像素绘制了四次,小范围可以接受。
  • 暗红: 意味着 overdraw 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。

那么我们怎么来消灭 overdraw 呢?总的原则就是:尽量避免重叠不可见元素的绘制,基于这个原则,我们大概可以想出以下几招:

阅读全文 »

Android 常见错误之 Can't create handler inside thread that has not called Looper.prepare()

发表于 2016-01-02   |   分类于 Issues Resolution   |  

Can’t create handler inside thread that has not called Looper.prepare() 是 Android 开发中比较常见的错误之一,遇到这种错误,通常情况下,我们会根据提示信息来进行 Looper.prepare(),其实大可不必

错误发生原因:通常情况都是我们在子线程中更新 UI 所致。

解决办法:把更新 UI 的操作交给 Handler 即可。

盘点一下 2015 年 Android 开发界的新技术

发表于 2015-12-29   |   分类于 Android   |  

本文转自:http://mobile.51cto.com/aengine-484159.htm

Android 的发展确实太快了,每年的都有很多新东西出现,想要覆盖所有新东西感觉也不太可能,在此整理了一些主要的 Android 新技术发展,其实了解 Android 的发展趋势,可能对我们开发者更有帮助。

开发工具

Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes ,一定会让你的写代码的生活更加美好。

编程“语言”

Kotlin: 作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行Android开发。

阅读全文 »

Anroid 5.X 新特性之 Palette

发表于 2015-12-26   |   分类于 Android   |  

在 Android 5.X 中能够使用 Palette 来提取颜色,已达到能够动态适应当前页面的色调,做到整个 App 界面的颜色基调和谐统一。

Android 内置了几种提取色调的种类,如下:

  • Vibrant(充满活力的)
  • Vibrant dark(活力黑)
  • Vibrant light(活力亮)
  • Muted(柔和的)
  • Muted dark(柔和的黑)
  • Muted light(柔和的亮)

通过 Palette,能够让我们从 Bitmap 中获取对应的色调,来修改当前主题的色调。

那么,我们如何能够做到呢?

阅读全文 »

Android 面试中常问的那些问题?

发表于 2015-12-07   |   分类于 Android   |  

本篇博文中,我们来说说Android面试中常见的那些问题。主要从 Java 和 Android 两个大块来例举。

Java

关于内存泄露

1.资源对象未关闭

如 Cursor, File 等资源。虽然他们会在 finalize 中关闭,当这样效率太低。容易造成内存泄露。
SQLiteCursor, 当数据量大时容易泄露。

2.使用 Adapter 时,没有使用系统缓存的 converView.

3.即时调用 recycle() 释放不在使用的 Bitmap.

4.在能使用 application 的 context 的地方就尽量不要用 activity 的 context,因为这样可能会导致 activity 被引用而无法释放。

5.注册没取消造成内存泄露,比如:广播

6.集合中的对象没清理造成内存泄露,我们通常把一些对象的引用加入到集合中,当我们不需要该对象时,并没有让 GC 及时清理它,导致这个集合越来越大,如果这个集合是 static 的话,可能 OOM.

7.Handler 因该声明为静态对象,并在其内部类中保存一个对外部类的弱引用,参见我的另一篇博客《你还在写导致context内存泄露的代码吗?》。

阅读全文 »
1…456
江冰

江冰

有一种难事叫坚持

53 日志
18 分类
33 标签
RSS
GitHub Weibo
Creative Commons
© 2015 - 2016 江冰
由 Hexo 强力驱动
主题 - NexT.Mist