10月 23 2019
Categories: Android Tags: Python

作为一位 Android 开发者,你是否还在为编译打包一系列流程而耗费心力呢,为了让解放双手减少手动操作的流程,我写了一个... ...

7月 15 2019
Categories: Tags: 闲谈

stormzhang 原创: ...

6月 27 2019
Categories: Flutter Tags: Flutter

Android 中监听用户可见/不可见就非常简单了,重写 Activity 或者 Fragment 的生命周期回调方法: ...

4月 18 2019
Categories: Tags: 智慧

提问的智慧 ...

3月 20 2019
Categories: Dart Tags: Dart

对于每一个程序员来说,空指针异常应该是基本都会遇到过的异常,而且这个异常出现的概率还比较大。但是,空指针异常又是最容易解决的异常,因为只要加... ...

3月 18 2019
Categories: Flutter Tags: Flutter

flutter-provide 是 Google 的亲儿子, ...

3月 14 2019
Categories: Flutter Tags: Flutter

记录 Flutter 开发学习过程中的工具,错误,解决思路等。 ...

3月 14 2019
Categories: Flutter Tags: Flutter

BLoC 是 Google 提出的一种全新的状态管理方案。 ...

2月 28 2019
Categories: Flutter Tags: Flutter

原文地址: ...

2月 28 2019
Categories: Flutter Tags: Flutter

背景本来最近对 F... ...

2月 19 2019
Categories: Flutter Tags: Flutter

元宵佳节齐欢乐,月圆时分大团圆。开开心心一年头,健健康康一年尾,祝身体健康,万事如意! ...

8月 23 2018
Categories: 数据库 Tags:

本文摘自 ...

8月 22 2018
Categories: 设计模式 Tags:

设计模式专栏: ...

8月 16 2018
Categories: Tags: C#, byte

最近项目遇到一个大坑(接口文档竟然说要传 byte[],其实应该传 string,还好我要要了一个 C# 代码,差点被坑!!!),需要上传一个 by... ...

8月 14 2018
Categories: Tags: AndroidSMS

... ...

8月 06 2018
8月 03 2018
Categories: Tags: Git

本人是 macOS 系统,用的 ShadowsocksX-NG ,开了全局代理也无事于补,折腾了好一会儿找到了解决办法。 配置 Git... ...

7月 25 2018
3月 23 2018
Categories: Tags: 闲谈

胖,是一种不管别人说「你胖了」或是「你瘦了」都能感觉到有形状的恶意扑面砸来的敏感。- ...

12月 13 2017
Categories: Tags: Git

Git 是一个强大的版本管理器,自从用上 git 后,腰不酸腿不疼了。 开发中查看提交记录是家常便饭了,git log ...

10月 19 2017
Categories: Tags: Android

Thumbnail by octiviotti 本文代码基于 Android 6.0(高通),原生不支持未接来电以及未读短信的图标右上角数目显示。 涉及到几个文件: ...

9月 12 2017
Categories: Tags: 直播

一直想搞个直播的 Demo,今天正好看到鸿洋公众号:轻松入门 Android 直播相关技术 从 0 搭建直播系统,索性就把我自己的搭(折)建(腾)过程做一个记录。 ...

9月 05 2017
Categories: Tags: Android, Framework

在开发中我们会遇到各种各样的非常奇怪的问题,有些问题是百思不得骑姐。其实这些问题大都是因为我们不了解安卓内部运行原理,知其所以然才是我们的目的。— 前言 ...

8月 29 2017
Categories: Tags: 闲谈

作为一名开发人员,应当秉承开源精神,遵守开源协议,这是必备的道德修养和素质。 ...

7月 06 2017
Categories: Android Tags: Binder

forked from xdtianyu/SourceAnalysis 本文是基于 Android 6.0.0 和 kernel 3.4 源码 及 Android SDK 23 展开的。 先上一张图,直白的了解 Binder 通信过程。(摘自超详细 Android 面试的准备与经历分享 | 百度 (offer)) ...

5月 19 2017
Categories: Android O Tags: Android O

2017 Google IO 开发者大会, 于北京时间 5 月 18 日凌晨 1 点举办了,具体的内容请看 stormzhang (帅比张去了加州现场还开了个直播,终于看到了一个会动的帅比张,哈哈)。 ...

5月 09 2017
Categories: 输入法 Tags: 输入法

近期接到一个微信,QQ 聊天时加密文字的需求。我当时的心情是这样的: ...

5月 04 2017
Categories: Android源码 Tags: 源码

进入项目根目录 (begoit@BegoitPC:~/begoit/AOSP-6.0.1_r17/) source build/envsetup.sh lunch (我的项目中选了 79) make -j8(第一次编译耗时 2 小时,机器性能好的可以 j32 等等) ...

3月 03 2017

重拾课本, 温故Android开发艺术探索! 本文是Android开发艺术读书笔记系列第一篇。内容结合书本/网络,自己概括而来。书中源码地址 Github ...

3月 02 2017
Categories: Android Tags: OkHttp

本文转载 JayFang-OkHttp源码分析 OkHttp3是Square出品的高质量Http网络请求库,目前在GitHub上的star数超过17000。很多Android项目的网络组件都是基于OkHttp封装的 ...

2月 28 2017
Categories: 知识点 Tags: Android, Java

持续更行中 Fragment 中弹出 PopWindow 要使背景被透明(无效的问题)问题:单独在 pop 里面设置属性的话只会半透明掉 activity 的,因为 getactivity 的 getwindow 方法获取到的是 activity 的窗体,而不是 Fragment 的实现:在 Fragment 的布局中设置半透明属性,而且是该布局最下面添加一个控件(eg:textview),将该控件设置半透明背景,然后pop显示和消失就让该控件显示和消失 1. 解释内存中的栈(stack)、堆(heap)和静态存储区的用法。答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间; ...

2月 09 2017
Categories: React Native Tags: React Native

先上图片 问题总结(持续更新ing) ...

12月 30 2016
Categories: 个人总结 Tags: 个人总结

转眼间,2016即将结束。本打算明天(12月31号)写年终总结的,不过明天放假O(∩_∩)O~~ 掐指一算已经工作近2年了,啊~~我又老了一岁 ̄へ ̄。虽然怀念学校安逸的生活 ...

12月 29 2016
Categories: JavaScript Tags: JavaScript, 前端开发

廖雪峰 js教程 JavaScript教程 我的练习基本是按着教程敲了一遍. 用的Chrome调试窗口,很方便! 以下是笔记 javascript的五种基本数据类型基本数据类型: ...

12月 07 2016
Categories: 持续集成 Tags: Hexo, 持续集成

好久没有写博客了o(╯□╰)o , 终于忙完Android项目了。接下来给自己定个长期目标, 每个月至少写一篇博文,可以是感想闲聊篇也可是技术篇, 哈哈看心情啦。 ...

11月 08 2016
Categories: mock Tags: Fiddler, mock

介绍 mock 数据的集中方法。 ...

10月 10 2016
Categories: Android Tags: 内存泄漏

内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放 ...

9月 23 2016
Categories: bug小场景 Tags: 小故事

本文原文地址 : Midaoi小站 前言 这篇文章非常有意思! 英文原文 → //我是一个Android开发者,但我想这个故事对任何开发者都会引起共鸣的 ...

9月 21 2016
Categories: 工具 Tags: 工具

首先申明本文转载, 本文由 Michael翔 创作, 基于原文有所改动 ! 总结一下自己常用的软件工具,有正版开源的,还是尽量不要去找破解版、绿色版的了,养成好的习惯: ...

9月 20 2016
Categories: 持续集成 Tags: Hexo, 持续集成

详情见我基友 ...

9月 20 2016
Categories: 在线PPT Tags: 演说

此文是一个演示ppt的demo,只要打开网页就能随时随地展示! 使用的是黄玄开发的演说在线工具 Watch Fullscreen → 你可以通过扫描二维码在手机上观看 ...

9月 14 2016
Categories: Tags:

AndroidTVLauncher 猫桌面 - 中国首位 00 后 CEO 公然抄袭、复制我的开源作品, 原作者的项目都很棒!坚决抵制这种炒作抄袭行为! Android最新源码汇总 ...

8月 17 2016
Categories: BugHD Tags: Android

BugHD 帮助 Android开发, 崩溃分析 & 检测更新& 开放 API。 如何在app中配置? 详见官方文档 MumuXi项目中已经配置好了,可以供参考 集成到app中分为如下几步: ...

8月 03 2016
Categories: Git Tags: Git

本文摘自我的小伙伴KevinJin 开源中国的 Pro Git(中文版) 1、Git基础1.1 分布式版本管理系统常用操作: 克隆远程仓库git clone </path/to/repository> 查看工作区状态git status ...

8月 02 2016
Categories: Android Tags: Android

由于最近的项目中多处需要用到多行多列的RadioButton,而google原生的RadioGroup又不能实现!因此就要自己动手实现了~ 注意:这里所说的RadioButton都是在代码中动态添加的! 看下效果图: ...

6月 27 2016
Categories: APP开发记 Tags: Android, Gank

这也是自己第一个算是正式的练手App项目 MumuXi 目的: 督促自己不断积累知识经验。下面进入正文 准备工作 Android Studio Gank Api (gank.io/api 由 代码家维护的开源Api) N多依赖jar包 学习CaMnter/EasyGank完成的项目 开发准备 框架搭建 界面原型设计 主要功能 ...

6月 23 2016
Categories: Android Tags: Android

AlertDialog弹出框 按钮在高版本中看不见(其实是颜色为白色) (2016-8-16 18:24:05)在android 6.0中变成了下面这种实际的效果应该是如下的解决方法: 引用v7包下的AlertDialog (android.support.v7.app.AlertDialog) ...

6月 21 2016
Categories: Android Tags: Android, ORMLite

本文摘自 鸿神博客,自己偷懒没写,鸿神的写的很详细,他的博客还有 ORMLite 框架最佳实践. 基于鸿神教程运用了ORMLite框架详见我的Github_QueryCityId 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39121377 ...

6月 20 2016
Categories: Android Tags: Android

使用shape可以自定义形状,可以定义下面四种类型的形状,通过android:shape 属性指定: rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等 ...

6月 03 2016
Categories: APP开发记 Tags: Android, MI

今日已完成工作 (2016-06-03 16:49:28) 登录界面( 国际化 ) 首页底部Tab设计完成 侧滑Drawerlayout( Google官方Demo满足需求 ) 公司项目 不能上截图 (~ ̄▽ ̄)~ ...

5月 22 2016
Categories: Music Tags: Music

请欣赏:一只花锅喜欢的音乐 ...

5月 16 2016
Categories: Android Tags: Android, Android Studio, Gradle

前言系统环境:Windows7 Android Studio版本:2.1.1 Gradle版本:2.8 整个过程默认翻墙! 本文参考了 ...

5月 12 2016
Categories: Markdown语法 Tags: Markdown

欢迎使用马克飞象@(示例笔记本)[马克飞象|帮助|Markdown] 马克飞象是一款专为印象笔记(Evernote)打造的Markdown编辑器,通过精心的设计与技术实现 ...

5月 09 2016
Categories: Android Tags: Android Studio, Gradle

1. orhanobut/loggerallprojects { repositories { jcenter() // 项目gradle中添加 jitpack仓库 maven { url "https://jitpack.io" } } } dependencies { // moudle/gradle中添加 compile 'com.github.orhanobut:logger:1.12' } ...

5月 07 2016
Categories: Birt Tags: Birt

级联查询步骤: 1, 创建级联参数 2, 设置相关联的参数 ...

5月 07 2016
Categories: Birt Tags: Birt

网上相关的资料少之又少,某度搜的博客更是不能信(互相抄)!不扯了,直接看多选参数设置 效果图: 具体实现步骤: ...

5月 05 2016
Categories: Android Tags: Android, Json

摘抄自 http://www.jianshu.com/p/3b8ef7162e69 一、Json简介JSON官网(中文版):http://www.json.org/json-zh.html JSON(JavaScript Object Notation)是一种轻量级(轻量级?简单、易操作、快捷)的数据交换格式。 ...

3月 25 2016
Categories: Android Tags: Android

GitHubDemo 源码 1. 首先看下状态栏与导航栏结构图 主要设置以下两个颜色一致 colorPrimary colorPrimaryDark ...

3月 25 2016
Categories: Android Tags: Android, 自定义View

首先看下 效果 核心代码: ...

3月 24 2016
Categories: Android Tags: Android, Gradle

基于github开源框架基础上运用在自己的项目中,效果如下: ...

3月 24 2016
Categories: 技术文档 Tags: 文档

给 Android 开发者的 RxJava 详解 by 扔物线 印象笔记 collecting… 友情链接也有许多大神 使用CheckStyle检查代码(http://gudong.name/2016/04/07/checkstyle.html) Android 名企面试题及涉及知识点整理 ...

3月 24 2016
Categories: Hexo Tags: Hexo

前言一直想要一个自己的独立博客,今天偶然发现Hexo这个优秀的静态博客框架,于是乎,便开始着手搭建个人博客。当然要搭配现在流行的gitHub(国内的coding也是相当不错的),简直是完美写博客的黄金搭档(免费+方便) ...

1月 08 2016
Categories: Android Tags: Android

本文用于记录安卓常用方法,俗话说:好记性不如烂笔头!apk打包文件位置输出applicationVariants.all { variant -> variant.outputs.all { output -> variant.mergedFlavor.versionName = getVersionName() + "_" + releaseTime() if (variant.buildType.name.equals('release')) { outputFileName = "App_${variant.mergedFlavor.versionName}_release.apk" } else if (variant.buildType.name.equals('debug')) { outputFileName = "App_${variant.mergedFlavor.versionName}_debug.apk" } if (outputFileName != null && outputFileName.endsWith('.apk')) { variant.getPackageApplication().outputDirectory = new File("D:\\APK") variant.getPackageApplication().outputScope.apkDatas.forEach { apkData -> apkData.outputFileName = outputFileName } } } } 设备是否已 Root/** * 当前设备root状态 */ private static boolean isDeviceRooted() { String su = "su"; String[] locations = {"/system/bin/", "/system/xbin/", "/sbin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/xbin/", "/data/local/bin/", "/data/local/", "/system/sbin/", "/usr/bin/", "/vendor/bin/"}; for (String location : locations) { if (new File(location + su).exists()) { return true; } } return false; } 自定义View(手写签名View)使用方法: 1,布局中直接集成 2,signView.reset(); 可以重置view 3,通过其他方法可以将view转成Bitmap /** * Created by yangjianan on 2018/5/10. * mail: yang.jianan0926@gmail.com * 手写签名文件 */ public class SignView extends View { private Paint mPaint; private Path mPath; public SignView(Context context) { super(context); } public SignView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); initPaint(); } private void initPaint() { mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(Color.RED); mPaint.setStrokeWidth(10); mPaint.setStyle(Paint.Style.STROKE); mPath = new Path(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawPath(mPath, mPaint); } @Override public boolean onTouchEvent(MotionEvent event) { switch (MotionEventCompat.getActionMasked(event)) { case MotionEvent.ACTION_DOWN: mPath.moveTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_MOVE: mPath.lineTo(event.getX(), event.getY()); break; case MotionEvent.ACTION_UP: break; } invalidate(); return true; } public void reset() { mPath.reset(); invalidate(); } } /** * 把一个view转化成bitmap对象 */ private Bitmap loadBitmapFromView(View v) { int w = v.getWidth(); int h = v.getHeight(); Bitmap bmp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); c.drawColor(Color.WHITE); /** 如果不设置canvas画布为白色,则生成透明 */ v.layout(0, 0, w, h); v.draw(c); return bmp; } private void saveImage(Bitmap bmp) { String fileName = "0001.jpg"; File file = new File(getExternalCacheDir(), fileName); if (!file.exists()) { appDir.mkdir(); } try { FileOutputStream fos = new FileOutputStream(file); bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); Log.i("rxjava","IOException e = " + e.getMessage()); } } Android Studio 无法关联 Api 26 源码 - 提示 Souces for android api 26 platform not found找到如下文件: C:\Users{USER_NAME}.AndroidStudio3.0\config\options\jdk.table.xml,修改节点 sourcePath <sourcePath> <root type="composite"> <root type="simple" url="file://E:/sdk/sources/android-26" /> </root> </sourcePath> exploded-aar 不显示问题gradle3.0 之后版本 compile aar 依赖,在 build\intermediates 下不会生成 exploded-aar 文件夹,建议使用 classpath ‘com.android.tools.build:gradle:2.2.2’ 和 distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip ubuntu 生成 key1, ssh-keygen -t rsa -C "yangjianan@begoit.com" 2, cd .ssh/ 3, cat id_rsa.pub 将美化后的 Json 字符串展示到 TextView 上 ...

1月 06 2016
Categories: Git Tags: Git

git 日志导出为 csv 格式文件、excel 格式文件git log --date=iso --pretty=format:'"%h","%an","%ad","%s"' >log.xls git回滚到指定版本方法(2016-01-08 14:55:44) git reset --hard <commit ID号> 例如: git reset --hard dc972ec 版本号查看方法: 打开github项目,点击commits就能看到提交记录以及版本号 ...