笔沫

有梦为马,随处可栖

  • 主页
  • 技术
  • 随想
  • 音乐
所有文章 其他

笔沫

有梦为马,随处可栖

  • 主页
  • 技术
  • 随想
  • 音乐

Java集合类详解

2017-09-22

一、集合与数组

数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。

二、层次关系

图1:实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口

这里写图片描述

more >>
  • 技术
  • Java集合类
  • 转载

展开全文 >>

HTTP文件断点续传原理解析

2017-09-08

生活中,有许多事物,在没有被揭开面纱之前,我们往往会觉得很神秘很高深,认为它一定很难,进而望而却步,失去了解它的机会。然而,很多事,只要我们自己能沉下心来,细细研究,那些神秘高深的,也会变得简单明了。”HTTP文件断点续传”就是这样一个好例子,深入了解背后之理,“HTTP文件断点续传原理”其实很简单。

一、什么是断点续传

1.定义:

可以从下载或上传断开点继续开始传输,就叫断点续传。

2.核心实现原理:

i.RandomAccessFile(文件任意位置保存)
方法seek():可以移动到保存文件任意位置,在该位置发生下一个读取或写入操作

ii.HttpURLConnection.setRequestProperty()(任意位置请求返回剩余文件)
HttpURLConnection.setRequestProperty(“Range”, “bytes=” + start + “-“ + end)

二、实例分析

more >>
  • 技术
  • Android
  • Http文件断点续传

展开全文 >>

你本是一个肉体,是什么驱使你前行[3]

2017-09-04

《大学》

大学之道,在明明德,在亲民,在止於至善。
知止而后有定;定而后能静;静而后能安;安而后能虑;虑而后能得。物有本末;事有终始。知所先后,则近道矣。

古之欲明明德於天下者,先治其国;欲治其国者先齐其家;欲齐其家者先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者;先致其知;致知在格物。
物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。

自天子以至於庶人,一是皆以修身为本。其本乱而末治者,否矣; 其所厚者薄,而其所薄者厚,未之有也。此谓知本,此谓知之至也。

more >>
  • 随想
  • 你本是一个肉体,是什么驱使你前行
  • 原创
  • 王阳明心学

展开全文 >>

Android Camera相机开发详解

2017-08-21

在应用软件开发中,图片数据,对于一个公司来说是十分重要的,例如:上传图片资料,修改用户头像等,而这其中就离不开相机和相册的使用。对于ios平台来说,直接调用系统相机或相册,就可搞定一切。然而对于Android平台来说,直接调用系统相机或相册,在适配和体验上问题比较多,具体原因,相比大家也知道,安卓品牌太多太杂,性能不一。鉴于此,在开发的过程中,遇到类似问题,建议自己实现相机或相册功能,以保证体验完整。本篇博文将会重点介绍Camera相机的实现。


首先,推荐两个github项目,可以直接使用的相机和相册;另外,也推荐一个联系人选择器:

相机:CameraDemo(自定义相机)

相册:ImageSelector(仿微信图片选择相册)

联系人:ContactSelector(联系人选择器)

一、打开Camera

1
2
3
4
5
6
7
8
try {
mCamera = Camera.open();//开启相机
} catch (RuntimeException e) {
e.printStackTrace();
LogUtil.d(TAG, "摄像头异常,请检查摄像头权限是否应许");
ToastUtil.getInstance().toast("摄像头异常,请检查摄像头权限是否应许");
return;
}
more >>
  • 技术
  • Android
  • Android相机
  • Camera

展开全文 >>

你本是一个肉体,是什么驱使你前行[2]

2017-08-21

文/笔沫拾光

从出生到五岁,你童年无忌,
尽情玩耍,想哭就哭,想笑就笑。

五岁到十二岁,你在小学,
开始谨记:好好学习,天天向上。

十二岁到十五岁,你在初中,
尽情游戏,忘乎天地,但也没忘,好好学习,上高中。

十五岁到十九岁,你在高中,
远离游戏,废寝忘食,决战高考,梦想大学。

十九岁到二十三岁,你在大学,
努力学习,奋战自习室,为了未来,为了工作。

二十三岁到现在,你毕业,工作。
我却想问:你本是一个肉体,是什么驱使你前行?

  • 随想
  • 你本是一个肉体,是什么驱使你前行
  • 原创
  • 笔沫拾光

展开全文 >>

执着的人是幸福的

2017-08-11

文/郭川

今天是我完成单人不间断环球航行上岸两周年的日子。

在我上岸后,我接受了很多媒体的采访。他们都会问我同一个问题,就是你为什么要做这样一个挑战。虽然大部分人对我做的事情表示钦佩,但是也会有人对我的冒险表示不理解,认为我太自我。

如果我是一个法国人或者英国人,我不会遇到这样的问题,更多的人可能会对我如何完成这样的挑战的细节感兴趣。
more >>

  • 随想
  • 演讲
  • 执着的人是幸福的
  • 郭川

展开全文 >>

【转载】Android Studio Gradle编译优化方法

2017-08-08

前言:最近发现Gradle项目编译越来越慢,有时甚至需要好几十分钟,实在是让人难以忍受。于是,便搜寻于网络,经过验证,发现此方案尤其有效,故留此博客,以备以后之需。

第1步:

打开AS安装所在的位置,用记事本打开studio64.exe.vmoptions文件。具体如图:

第2步:

打开“studio64.exe.vmoptions”文件后修改里面的值,修改后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# *DO NOT* modify this file directly. If there is a value that you would like to override,
# please add it to your user specific configuration file.
#
# See http://tools.android.com/tech-docs/configuration
#
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-Didea.paths.selector=AndroidStudio2.0
-Didea.platform.prefix=AndroidStudio
more >>
  • 技术
  • AS Gradle优化

展开全文 >>

Annontation注解的应用及介绍

2017-08-01

一、什么是注解?

Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。

二、注解的用处

  • 生成文档。这是最常见的,也是java 最早提供的注解。常用的有@param @return 等
  • 跟踪代码依赖性,实现替代配置文件功能。
  • 在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

三、注解介绍

元注解

java.lang.annotation提供了四种元注解,专门注解其他的注解:

  • @Documented –注解是否将包含在JavaDoc中
  • @Retention –什么时候使用该注解
  • @Target –注解用于什么地方
  • @Inherited – 是否允许子类继承该注解

1)@Retention– 定义该注解的生命周期

  • RetentionPolicy.SOURCE : 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。
  • RetentionPolicy.CLASS : 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式
  • RetentionPolicy.RUNTIME : 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。

2)@Target – 表示该注解用于什么地方。默认值为任何元素,表示该注解用于什么地方。可用的ElementType参数包括

  • ElementType.CONSTRUCTOR:用于描述构造器
  • ElementType.FIELD:成员变量、对象、属性(包括enum实例)
  • ElementType.LOCAL_VARIABLE:用于描述局部变量
  • ElementType.METHOD:用于描述方法
  • ElementType.PACKAGE:用于描述包
  • ElementType.PARAMETER:用于描述参数
  • ElementType.TYPE:用于描述类、接口(包括注解类型) 或enum声明
more >>
  • 技术
  • Android注解
  • Java反射机制
  • Java动态代理

展开全文 >>

我之存在,因为有你

2017-07-19

文/霍华德*舒尔茨

非常感谢对我热情洋溢的介绍。我很荣幸、非常荣幸能够来到这里(清华大学)。我知道,过去这个讲堂也曾邀请过其他非常著名的演讲者。但是今天,我和大家分享的也许和之前的有点不太一样,并且会给你们提出一些出乎意料的挑战。

三年前,在星巴克的全球股东大会上,我向我们的员工、我们的股东问了一个很重要的问题。这个问题当时已经在我脑海中存在了很久,这个问题就是:在我们所生活的这个世界,每一天都在变化,不仅仅是商业上的变化,而是到处都在发生变化,一家商业上市公司的使命和责任是什么?仅仅只是盈利赚钱么?只是为股东带来回报么?如何在商业利润和社会责任之间实现平衡?这个问题就是今天晚上我想和各位分享的主题。

1987年,星巴克只有11家门店,员工区区百人。我们的梦想就是:把星巴克打造成一家与众不同的企业,不仅是一个本土品牌,更可以在公司不断发展的同时,与员工共同成长,分享成功,一路向前。正如刚刚院长所提到的,我们是美国第一家向员工提供综合医疗保险和股票期权的公司。当时,我们还只是一家私人公司。很多人认为这项举措会稀释公司股票的价值,是无法长期维持的。然而,当我们回顾星巴克的发展和成就,我们发现,原来最好的成功是与彼此分享。

现在,你必须要用一个与过去截然不同的方式来经营业务。1987年,星巴克只有11家门店,100名员工,我们梦想一直是把星巴克打造成一家与众不同的企业。而如今,正如刚刚院长介绍的,我们的门店已经超过了25,000家,业务遍及75个国家,拥有超过33万员工,上周接待的顾客人次达到9100万。那么问题来了:这是一家用纸杯销售咖啡的公司,很多人连那些意大利语的发音也不会,一杯定价3美元或4美元的咖啡,这些在过去都是从来没有发生过的。

然而,就是这样一家企业,从1987年的11家门店发展到如今的26,000家门店,市值将近900亿美元。这些成就是怎么得来的?你们可能还会问一个相似的问题——一家公司是如何从1999年开始的一家门店,发展成今天的26,000多家门店,每周服务500万位顾客,拥有近40,000名员工?

今天我们在中国宣布了一项重要举措,这是星巴克的价值观、文化和指导原则的体现。这项全新的举措印证了“我们是谁?”每家公司,无论提供什么产品、什么服务、属于什么行业或来自哪个国家,都要对你存在的意义、目的和价值做一个定义。

所以今天,我们在北京宣布的这个消息:今天我们宣布,从今年6月1日起,为所有符合条件的全职中国员工,全资提供父母重大疾病保险。我们为什么要这么做呢?为什么公司要做如此巨大的投入,这也许要投入数百万美元,为这么多员工的父母购买这份保险?用这个问题带领我们再次回到1987年。答案就是:不是每一个商业决定都是出于经济利益的考量。
more >>

  • 随想
  • 演讲
  • 我之存在,因为有你
  • 霍华德*舒尔茨

展开全文 >>

Android studio NDK编译及so库生成方法讲解

2017-06-30

前言:在Android开发的eclipse时代,想要开发NDK项目或生成so库,是非常蛋疼的,需要踩坑无数,方能生成so库;而如今Android Studio时代,开发jni C/C++项目,通过gradle的集成工具,那是一个爽。下面将会介绍两种利用AS和gradle开发NDK项目及生成so库的方式。

一.环境准备

Android开发环境,Android-SDK,java-SDK,android-NDK相关环境(略:网上有许多)

1.安装完成之后如图:

2.在项目的gradle.properties文件中加上 android.useDeprecatedNdk = true

3.注意写好native接口和System.loadLibrary()

如:JNIUtil和MainActivity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class JNIUtil {
private static JNIUtil instance = new JNIUtil();
public static JNIUtil getInstance() {
return instance;
}
static {
System.loadLibrary("native-lib");
}
public native String initData();
public native String getStringFromJni();
}
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setText(JNIUtil.getInstance().getStringFromJni());
Log.i("笔沫拾光",JNIUtil.getInstance().initData());
Toast.makeText(this,JNIUtil.getInstance().initData(),Toast.LENGTH_LONG);
}
}
more >>
  • 技术
  • Android
  • NDK
  • JNI C/C++

展开全文 >>

« Prev12345Next »
© 2019 笔沫
Hexo Theme Yilia by Litten
  • 所有文章
  • 其他

tag:

  • 技术
  • Android
  • Activity的启动模式
  • Android注解
  • Java反射机制
  • Java动态代理
  • Android基础
  • MVP
  • NDK
  • JNI C/C++
  • 开源框架
  • AS Gradle优化
  • 博客搭建
  • 设计模式
  • Fragment
  • Rxjava
  • Rxandroid
  • 响应式编程
  • 随想
  • 你本是一个肉体,是什么驱使你前行
  • 原创
  • 笔沫拾光
  • Java
  • Java基础
  • 王阳明心学
  • 中国历史
  • 人生的意义
  • 演讲
  • 执着的人是幸福的
  • 郭川
  • Android框架源码解析
  • 加解密算法
  • Binder通信机制
  • 开源框架源码解析
  • LeakCanary框架源码分析
  • Java集合类
  • 转载
  • Http文件断点续传
  • Logger框架源码解析
  • Android应用程序入口源码解析
  • DecorView绘制流程
  • Android消息机制源码解析
  • Activity启动流程
  • Butterknife框架源码解析
  • 我之存在,因为有你
  • 霍华德*舒尔茨
  • Android相机
  • Camera
  • 悬浮窗
  • WindowManager

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 风光摄影
  • 星空摄影
  • 人像摄影
  • 学习站点