自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

寒江蓑笠的专栏

好记性不如写博客。天道酬勤。

  • 博客(190)
  • 资源 (4)
  • 收藏
  • 关注

原创 Flutter -- 开发 Gank 客户端

各个版本的Gank客户端:Android 版本快应用版本Flutter 版本概述接触 Flutter,照例,撸一个 Gank 客户端来练习。每日分享技术干货和妹子图,还有供大家中午休息的休闲视频、美女图片,另外还实现了推荐干货功能。数据来源 Gank项目源码 Github应用展示用到的第三方库名称功能dio网络请求框架json_ann...

2019-08-20 11:00:04 500

原创 Gradle 使用指南 -- Plugin DSL 扩展

我的博客原文地址概述前面的博客Gradle 使用指南 – 创建Plugin 介绍了如何去创建一个插件,那么这篇文章将介绍一些深入的知识:如何对自定义插件进行 DSL 扩展。 在博客Gradle 使用指南 – Android DSL 扩展 Android 插件对 Gradle 进行的 DSL 扩展,那么我们自定义插件也是完全可以做到的。DSL 扩展基本实现我们在进行 Gra

2018-01-16 09:31:23 2546 2

原创 Gradle 使用指南 -- Android DSL 扩展

我的博客原文地址概述在前面博客Gradle 使用指南 – 基础配置 中介绍了一些 Gradle 配置的基本命令,其中有一个名称为 android的函数不知道有没有引起大家的注意:android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { ......

2018-01-16 09:28:45 1836

原创 使用 TaskDescription 定制任务管理器 Title

概述最近有个需求,就是要代码动态修改 APP 在任务管理器中名称显示,不要问我问什么有这样的需求,因为需求就这样。哈哈…… 对于如何控制 APP 在任务管理器中的 Title,我们可能知道,可以通过在 AndroidManifest.xml 中设置 application 或者主 activity 的 android:label 来实现,而且 activity 的优先级高于 application

2017-10-18 18:42:33 3593 1

原创 WebApp 和 NativeApp 的世纪之战

概述自从Android系统在手机上应用开始,在移动端 Native App 和 Web App之间的战争似乎就没有停止过,Web App 及其各种变体向Native App 发起了无数次的冲锋,但Native App的地位仍然是岿然不动,甚至我们一提起移动互联网,就专指 Native App。这和 PC 端的景象完全不一样。随着轻应用、Hybrid App 、React Native、Weex已经微

2017-10-10 18:54:13 1085

原创 Gradle 使用指南 -- Gradle Task

概述Gradle 官方文档 Gradle User Guide 中文版Gradle 中的每一个 Project 都是由一个或者多个 Task 来构成的,它是 gradle 构建脚本的最小运行单元,一个 Task 代表一些更加细化的构建,可能是编译一些 classes、创建一个 Jar、生成 javadoc、或者生成某个目录的压缩文件。Task 相关命令./gradlew tasks:列出当前工程

2017-08-29 19:28:31 2115

原创 Gradle 使用指南 -- 创建Plugin

概述Gradle 的插件可以有三种形式来提供:直接在build.gradle中编写Plugin,这种方式这种方法写的Plugin无法被其他 build.gradle 文件引用。单独的一个Module,这个Module的名称必须为buildSrc,同一个工程中所有的构建文件够可以引用这个插件,但是不能被其他工程引用。在一个项目中自定义插件,然后上传到远端maven库等,其他工程通过添加依赖,引用

2017-08-21 16:21:11 1307

原创 Markdown 绘制 UML 图 -- PlantUML + Gravizo

我的博客原文地址我们在工作中会经常使用UML图,实现UML的工具有很多,首先是绘图软件,但是所有的绘图软件有这样一个问题:这些软件绘制成的图片无法进行版本控制。也就是说如果后面你想修改软件的话,如果在软件里面的原图没有保存的话,就要重新再画了。这对于我们习惯于版本控制的码农来说显然是无法忍受的。 那么下面介绍一种可以在Markdown中使用的绘制UML工具 —— PlantUML,以及渲染引擎 G

2017-08-10 14:40:37 27564

原创 J2V8 -- 注册 Java 回调函数

我的博客原文地址 本文译自Registering Java Callbacks with J2V8,并加入了自己的一些理解。使用 J2V8 时是可以使用 JavaScript 来调用 Java 的方法的,下面就介绍一些如何注册 Java 的回调函数来供 JavaScript 调用。回调函数在 JavaScript 中,函数也即是对象,可以被操作也可以被传递。在使用 J2V8 时,任何的 JavaS

2017-08-07 12:48:02 2908

原创 J2V8 -- 开始使用J2V8

我的博客原文地址本文译自Getting Started With J2V8,并加入了自己的一些理解。概述J2V8 是对 Google 的目前非常流行的 JavaScript 引擎 V8 的 Java 封装,J2V8 的开发使 Android 高效执行 JavaScript 带来了可能。Tabris.js 就是基于 J2V8 开发的一款移动端 App。J2V8 可以运行在 Windows,Linux

2017-08-07 12:44:20 14099

原创 Android:使用JitPack发布Github开源库

JitPack 是一个发布流程非常简单的自定义的 Maven 仓库,可以用来发布自己的 JVM 或者 Android 开源库。 JitPack 的官方文档在这里 Publish an Android library。 参考我的Github上面一个开源项目。 下面来介绍一下使用JitPack发布一个开源项目的步骤。GitHub准备代码准备首先将需要发布的library工程准备好。 打开根目录的

2017-07-24 10:14:24 1406

原创 Android 性能优化之MAT分析内存泄漏

MAT 是 Memory Analyzer Tool 的简称,它是一款强大的内存分析工具,使用它能帮助开发者快速分析内存泄漏以及优化内存的使用。 内存泄漏也是我们开发过程中经常碰到的问题,掌握了MAT工具,那么你就不会惧怕内存泄漏,使用它可以让内存泄漏无所遁形。MAT下载进入网址下载MAT工具,如果你使用 Eclipse 开发工具而且已经集成了插件,可以不用下载了。场景准备我们用下面的代码产生一个

2017-06-27 11:32:16 1278

原创 Android:关于Drawable的缓存机制应该了解的知识

问题演示下面我们通过一个实例来演示一个我们在使用Drawable过程中经常会遇到的一个问题。首先贴出UI布局文件,这里放了两个 ImageView,它们的寬高不一样,而且对他们加以蓝色的背景。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mz="http://s

2017-06-15 13:05:10 3633

原创 Android 性能优化之旋转屏幕优化

我的博客原文地址问题背景在桌面转屏发现响应不够迅速,对比其他产品有很大的提升空间,针对此问题进行了一些分析和优化。问题分析和解决方法首先简单介绍一下旋转屏幕的流程,首先各个界面要进行重绘,在重绘过程中要进行冻屏,只有所有Window都进行绘制完成了才进行转屏,因此这里面就有个木桶效应,转屏的时间取决于重绘最慢的那个。 首先分析Log,找出可以优化的点:adb shell dumpsys windo

2017-05-02 17:52:26 7104 3

原创 Android 性能优化之TraceView的使用

我的博客原文地址TraceView简介工欲善其事,必先利其器。要想分析Android的性能问题,比如卡顿了之类的,那么就必需掌握TraceView工具的使用。 TraceView 是 Android SDK 中内置的一个工具,它可以加载 trace 文件,用图形的形式展示代码的执行时间、次数及调用栈,便于我们分析,以此来优化 App 运行效率。生成trace文件在进行分析以前,必需要生成trace

2017-04-25 19:48:36 1897

原创 Android应用调试常用知识(2)

使用Android Studio来查看依赖列表有时候我们应用在编译的时候会遇到类似的问题:Error:Error converting bytecode to dex:Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/Accessibilit

2017-04-10 10:54:38 1522

原创 Android实用技巧之adb命令:getprop,setprop,watchprops命令的使用

我的博客原文地址getpropgetprop简介getprop命令的作用就是从系统的各种配置文件中读取一些设备的信息。这些文件在我们的手机设备中是可以找到的:init.rcdefault.prop/system/build.prop查询所有的配置输入命令:adb shell getprop就会列出所有的配置信息:[aricent_ims_op_status]: [1][aricent_ims_

2017-04-06 19:31:33 68843

原创 Android Studio 导入 Android 源码

我的博客原文地址 Android 的源码代码量是非常大的,也有多种代码编辑器来供我们选择来去阅读Android源码,本文将介绍如何将 Android 源码导入到 Android Studio 中来的技巧。 导入源码修改Android Studio的配置文件由于导入源码时需要消耗大量内存,所以建议修改一studio64.vmoptions文件:-Xms1024m-Xmx1024m生成导入到And

2017-03-15 19:40:58 22498 1

原创 程序员学习资料汇总

我的博客原文地址前言资料篇技术网站开发社区Android开发网站开发IT业界资讯源码网站学习网站技术博客技术团队博客CSDN博客个人主页微信公众号技术类其他开源项目关于开源项目的网站知名互联网企业开源项目AndroidJavaJava SDK人工智能VR/AR其他资料汇总学习资料GitBook必读书籍Andro...

2017-03-14 17:43:14 4923

原创 开源项目- Lottie 源码分析

我的博客原文地址 Lottie的基本用法其实还是非常简单的,不熟悉的同学请阅读我的博客开源项目-Lottie简介。接下来我们就从源码角度分析一下这么强大的功能是怎么实现的。 实现思路Lottie使用json文件来作为动画数据源,然后把解析这些数据源出来,建立数据到对象的映射关系,根据里面的数据建立合适的Drawable绘制到View上面。源码分析下面我们就从LottieAnimationView

2017-03-07 17:22:11 4854

原创 React Native封装原生UI组件

我的博客原文地址 在React Native开发过程中,有时我们想要使用原生的一个UI组件或者是JS比较难以实现的动画效果时,我们可以在React Naitve应用程序中封装和植入已有的原生组件。 比如开源项目Lottie在Android上能够非常简单的实现一些复杂的动画效果,如果我们想在JS中也实现这样的效果呢?很简单,我们可以自己构建一个原生UI组件。 接下来就以此为例来进行介绍。Lo

2017-03-03 16:11:58 5017 7

原创 React Native创建原生模块

在React Native开发过程中,有时候我们可能需要访问平台的API,但React Native还没有相应的实现,或者是React Native还不支持一些原生的属性,我们需要调用原生代码来实现,或者是我们需要复用一些原来的Java代码,这个时候我们就需要创建一个原生模块来自己实现对我们需要功能的封装。 可以参考官方文档或中文文档。开发模块实现模块下面我们就通过实现一个自定义模块,来熟悉编

2017-03-01 09:29:57 1990

原创 Android项目中集成React Native

React Native是非常强大的,但有的时候我们可能并不需要从0开始去开发一个React Native应用,而是需要把它集成到我们现有的Android工程中去,去添加单个的React Native View。本章将主要介绍在原生Android中集成React Native。 可以参考官方文档或中文文档。创建Android工程新建一个ReactNativeDemo的Android工程作为已有

2017-02-27 14:29:27 3345 1

原创 Android 多CPU架构支持所需要了解的知识

前言Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。ABI是指应用基于哪种指令集来进行编译。 如果项目中使用到了NDK,它将会生成.so文件,Android应用支持的ABI取决于APK中位于lib/AB

2017-02-24 10:08:31 3029

原创 编译weex_v8core

Ubuntu版本:14.04下载源码源码地址git clone https://github.com/alibaba/weex_v8core.git编译下载NDK下载地址,这里用的是android-ndk-r11c,用android-ndk-r13b会编译不过。配置环境变量修改.bashrc文件,加上:export PATH=/******/android-ndk-r11c:$PATH编译cd we

2017-02-21 17:12:30 2195

原创 使用CrashHandler来获取应用的oom crash信息

Android应用开发中不可避免地会发生崩溃,特别是在用户使用过程中,一些特定场景的偶然概率的crash会通常让开发者抓狂。幸运的是Android提供了处理这类问题的方法,当App Crash时,我们可以记录下Crash的原因或者是一些设备信息,并上传到服务器供开发者分析,以便开发者迅速定位问题原因。 实现这个功能我们需要实现Thread.UncaughtExceptionHandler这个接口。

2017-02-21 11:17:51 1520

原创 Ubuntu环境下编译V8

Ubuntu版本:14.04关于V8V8是Google自己开发的高性能开源的JavaScript解析引擎。 - V8在Github上面的地址 - V8开发者页面下载源码源码地址 根据文档中的介绍,首先看depot tools是否安装。 然后下载v8源码:fetch v8然后进行同步:git pull origingclient sync根据这个网站的提示,运行下面脚本来安装一些编译an

2017-02-17 17:00:45 6715 2

原创 Android应用开发常用知识-ActionBar相关(5)

Android 5.0 消除ActionBar下面的阴影在Android 5.0上你会发现ActionBar下面默认会出现一条阴影,如下设置可以消除阴影:getActionBar().setElevation(0);设置显示后退按钮:actionBar.setDisplayHomeAsUpEnabled(true)显示标题:actionBar.setDisplayShowTitleEnabled

2017-02-15 16:56:17 864

原创 使用LayoutInflater应该注意的问题

我们通常使用addView这个方法时,会先通过LayoutInflater的inflate生成一个View视图,然后添加到当前ViewGroup中,如果使用不恰当,就会出现这样的问题: setContentView(R.layout.layout_inflate_test); LinearLayout viewGroup = (LinearLayout) findVie

2017-02-15 09:56:51 698

原创 开源项目- Lottie 简介

Airbnb GitHub lottie-android Android Lottie

2017-02-07 14:45:34 5107

原创 Hexo--Next主题优化

欢迎访问我的博客 按照上篇博客中更换Theme的方法,我们已经将主题改为Next,但是还是有地方我们可以优化和配置的。 一些常见的配置方法参考文档即可。语言设置将languages目录下面的zh-Hans.yml修改为zh-CN.yml或者按照文档中的修改根目录配置文件也行。修改样式网站标题栏背景颜色网站标题栏背景颜色是黑色的,感觉不好看,可以在source/css/_schemes/Pisce

2017-02-04 14:56:15 10784 1

原创 Hexo博客配置优化

欢迎访问我的博客Hexo优化创建hexo分支为了实现能在更换环境(比如更换电脑)的情况下我们仍然能发布博客,我们创建一个hexo分支用来存放hexo的文件。$ git checkout --orphan hexo$ git rm -rf .$ git add . -A$ git push origin hexo这样就用hexo分支来存放网站的原始文件,master分支用来存放生成的静态网页。添

2017-02-04 14:54:30 3358

原创 Hexo+GitHub搭建个人博客

本地环境搭建安装git安装node.js去官网下载node-v5.0.0-linux-x64解压即可配置Github建立Repository首先在github上面建一个仓库username.github.io域名配置首先要购买一个域名,然后进入域名解析页面,添加一个CNAME记录,指向username.github.io即可。配置好一般等待TTL缓存的时间过后,博客建好后,访问你的域名heqiang

2017-02-04 14:48:36 994

原创 React Native--flexbox

flexbox布局flexbox是React Native应用开发中必不可少的内容,也是最常用的内容。flexbox是由W3C在2009年提出的一种新的布局方案,该布局可以简单快速地完成各种伸缩性的设计。 flexbox是Flexible Box的缩写,即为弹性盒子布局。 flexbox布局由伸缩容器和伸缩项目组成。采用Flex布局的元素称为伸缩容器。伸缩容器的子元素成为伸缩项目,伸缩项目使用伸

2017-01-17 16:05:21 756

原创 使用JOOR实现Java反射

在前面的博客 Java反射使用 列举了Java反射的一些使用,下面介绍开源反射工具JOOR的使用。 只需几行代码就实现了前面博客中内部类的反射: public void testJoor(){ Reflect.on("com.example.heqiang.testsomething.OuterClass").create().field("mInnerClass").cal

2017-01-04 11:26:35 1777

原创 React Native--组件Component

创建一个Component一个组件类可以像前面Hello World工程中那样通过 class HelloWorldAppp extends Component 来创建,或者通过React.createClass来创建,并且提供一个render方法以及其他可选的生命周期函数、组件相关的事件或方法定义。因此,HelloWorldAppp和下面的实现方法是等价的:import React, { Comp

2016-12-28 15:34:21 4630

原创 React Native 入门

Helle World代码分析Helle World代码分析import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, View,} from 'react-native';export default class HelloWorldAppp extends Component

2016-12-27 17:34:59 549

原创 React Native--Image控件

基本用法加载本地图片<Image source={require('./img/baidu.png')}/>加载App内资源图片<Image source={{uri: 'ic_launcher'}} style={{width: 140, height: 140}} />加载网络图片<Image source={{uri:'http://172.17.137.68/heqiang/2.jpg'}}

2016-12-21 16:12:34 1728

原创 Android动画-滚动小车

实现drag,fling效果效果图源码github 源码

2016-12-19 17:40:46 1270

原创 可能是讲解Android事件分发最好的文章

http://mp.weixin.qq.com/s/GUcGzJuRwTdTZgGU3fcTPQ

2016-12-09 12:36:11 418

html解析器ixml

一款强大的html解析器,简单,易用 The Linux DOM2 XML Parser Version 1.2 (IXML) is a lightweight, portable XML parser supporting the standard Document Object Model (DOM) Level 2 interfaces. The parser uses a C-style interface, making it idea for small, embedded applications. This document describes the interfaces supported by IXML 1.2, referencing the W3C DOM2 recommendations when necessary, and the additional utility application programming interfaces (APIs) that it supports.

2013-08-15

设计模式可复用面向对象软件的基础

这本书的目的就是将面向对象软件的设计经验作为设计模式记录下来。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。我们的目标是将设计经验以人们能够有效利用的形式记录下来。鉴于此目的,我们编写了一些最重要的设计模式,并以编目分类的形式将它们展现出来。

2012-05-23

深入浅出Android

Android 应用开发,零基础学习android开发,开发环境建立,介绍基础控件

2012-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除