自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (7)
  • 收藏
  • 关注

原创 CodePush 资源更新原理及资源自动回滚的 bug 解析

1. 使用者使用如下方法调用 CodePush 的 sync 方法RnCachePage.jsimport React, {Component} from 'react';import { View,} from 'react-native';import codePush from "react-native-code-push"; // 引入code-push//...

2019-10-25 00:42:49 4404 3

原创 Android AIDL Binder 简单实现与最全细节讲解

一、Android AIDL 简单实现如下,使用 aidl 实现一个可获取书籍列表与添加书籍的 Service服务端Book.java -> 创建一个实现了 Parcelable 接口的书籍实体类package top.ftas.aidl_demo;import android.os.Parcel;import android.os.Parcelable;/** ...

2019-10-20 11:44:59 399

原创 Java垃圾回收机制及常见垃圾收集器

一、内存泄露Java的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有时也将其称为“对象游离”。 二、如何判断无用对象1、引用计数法(Reference Counting Collector)引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象实例都有一个引用计数。当一个对象被创建时,且将该对象实例分配给一个变量,该变量计数设置为1。任何引用计数器为...

2018-10-01 12:05:29 451

原创 ffmpeg 常用命令学习及安装教程

FFmpeg 常用命令音频格式转换m4a转wavffmpeg -i input.m4a -acodec pcm_s16le -ac 2 -ar 44100 output.wavwav转m4a128k 可修改为 64k 32kffmpeg -i output.wav -c:a libfdk_aac -b:a 128k result.m4a设置码率,参考wiki:Encode/AACm4a转mp3ffmpeg -i input.m4a -b:a 192K -vn tes

2020-05-22 21:46:14 583

原创 常用内存分析命令及常见内存泄露分析思路

adb 命令使用android shell命令查看内存使用情况单位为千字节 KBadb shell dumpsys meminfo pkgname示例adb shell dumpsys meminfo top.ftas.demo.leaked# 查看 Java Heap 大小adb shell dumpsys meminfo top.ftas.demo.leaked|grep Java\ Heap# 查看 Native Heap 大小adb shell dumpsys m

2020-05-22 21:39:09 685

原创 Mac OS Catalina上安装 HomeBrew报错-443Connection refused

Mac上安装 HomeBrew 报错-443Connection refusedcurl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refusedWarning: The Ruby Homebrew installer is now deprecated and has be...

2020-04-28 23:04:07 1185 1

原创 Android-Hybrid-问题收集&Android客户端无法拦截Vue路由的问题

1. 在Android客户端或Chrome浏览器弹出一个引导用户关注公众号的二维码描述客户端加载线上义诊Url,偶尔会弹出一个要求关注丁香园公众号的二维码问题分析后端会根据当前登录用户向前端界面注入一段如下js<script> window.initialState = { currentLoginUser: { ...

2020-03-20 13:19:09 1535 1

原创 react-native-render-html 库 从 ul 或 ol 标签渲染流程分析 ol 标签左边有 20单位的空白区域无法移除的问题

react-native-render-html 仓库地址 (下面源码指的 4.1.2 版)https://github.com/archriss/react-native-render-htmlHTMLRenderers.js 里面定义了 ul 函数,作用是渲染 ul 标签ul 函数定义如下:export function ul (htmlAttribs, children, ...

2019-11-04 21:57:13 1312

原创 linux添加虚拟内存

linux添加虚拟内存创建一个 2G 的虚拟内存mkdir /swap_for_bizcd /swap_for_biz/dd if=/dev/zero of=swap_memory bs=2k count=1Mls -lhfree -mchmod 600 swap_memormkswap /swap_for_biz/swap_memoryswapon /swap_for_b...

2019-10-27 23:31:58 1319

原创 RxJava1升级到RxJava2的一些差异记录

说明mMessageHelper.appendLine("Observable emit 3");理解成如下打Log,详见https://github.com/tik5213/DUnitLog.e("TAG","Observable emit 3");rxjava2-编译器提示“The result of subscribe is not used”如下书写,编译器提示 ...

2019-10-25 22:16:32 914

原创 getApplicationContext 返回 null 原因及解决方案

getApplicationContext 返回 null 原因及解决方案Get application context returns null.原因从下面可知 mApplication 在 attachBaseContext 方法被调用之后才被赋值final void attach(Context context, ActivityThread aThread, ...

2019-05-08 13:21:49 11223

原创 gitlab git ssh 配置多个帐户-不同git仓库使用不用的ssh key

gitlab git ssh 配置多个帐户-不同git仓库使用不用的ssh key生成 ssh - keymanager@mobile:~/.ssh$ ssh-keygen -t rsa -C "[email protected]"Generating public/private rsa key pair.Enter file in which to save the key (/h...

2019-05-06 23:43:33 4788

原创 什么是MVP?—— 关于标准MVP与把P层当网络层使用的区别

1. 对于 MVP 常常有许多人觉得,MVP 和 MVC 也没有什么区别啊。MVP 框架不过只是一个噱头吧。说实在的,刚接触 MVP 的那段时间,我也有同样的困惑。大家天天说的 MVP,怎么看上去和 MVC 那么像呢。除了代码变多了,怎么一点也看不到 MVP 有什么用,有什么区别。随着反复的理解 MVP 模式,看了大量网上所谓“牛人”写的各种 MVP(实际许多理解都不透彻),集百家之长,有一天,我...

2018-12-18 01:25:18 1910

原创 将markdown 文件渲染 mhtml 的方式

将markdown 文件渲染 mhtml 的方式1. 使用 MacDown.app 打开对应的 md 文件2. 菜单 - 文件 - 导出到 HTML3. 将导出的 HTML 改成英文名 AAA.html ,并移到 md 所在位置的同级目录下。4. 将包含 md 和 刚刚导入的 AAA.html 的那个目录,整个的打包,静态部署到一个在线服务器上,并解压出来。5. 使用 Goog...

2018-12-03 23:54:10 1596

原创 python学习笔记10-python常用内建模块

1.collections1.namedtuplenamedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。 &gt;&gt; from collections import namedtuple&gt;&gt; Point = namedtuple('Point', ['x', 'y'...

2018-11-16 23:21:48 112

原创 python学习笔记09-python正则表达式

1.正则表达式当我们在Python中使用正则表达式时,re模块内部会干两件事情:1. 编译正则表达式,如果正则表达式的字符串本身不合法,会报错。2. 用编译后的正则表达式去匹配字符串。 #导入正则表达式模块&gt;&gt; import re#正则匹配电话&gt;&gt; re.match(r'\d{3}\-\d{3,8}$','010-123456')&lt;_sre.S...

2018-11-16 23:20:04 108

原创 python学习笔记08-python-进程和线程

1.多进程1.forkUnix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进...

2018-11-16 23:18:08 175

原创 Mac上的正则表达式和echo命令——Mac上面grep命令使用正则匹配含有字符串A或B

Mac上面grep命令使用正则匹配含有字符串A或BMac 电脑 grep 命令支持正则表达式,过滤出字符串“abc”或“def”grep -E "(字符串A|字符串B)"示例例1:echo -e "abc32324\n123456\ndef6666" | grep -E "(abc|def)"结果$ echo -e "abc32324\n123456\ndef66...

2018-11-16 23:17:06 4513

原创 python学习笔记07-python-IO编程

1.文件读写read()方法可以一次读取文件的全部内容read(size)方法,每次最多读取size个字节的内容readline()可以每次读取一行内容readlines()一次读取所有内容并按行返回list #!/usr/bin/env python# -*- coding: utf-8 -*-try: #读取一个文件 f = open('d...

2018-11-13 22:26:30 182

原创 python学习笔记06-python错误、调试和测试

1.错误处理#!/usr/bin/env python# -*- coding: utf-8 -*-import logging#定义一个自定义错误,继承自StandardErrorclass FooError(StandardError): passdef func1(value): return 10/int(value)def func2(...

2018-11-12 00:29:57 253

原创 android 项目拆分模块之后,使用脚本打包所有模块的apk

android 项目拆分模块之后,使用脚本打包所有模块的apk脚本#!/bin/sh#!/bin/bashold_dir=`pwd`cd `dirname $0`#进入项目上层目录cd ..path=`pwd`logFile="$path/log-builall.log"files=$(ls $path)echo "path is $path"echo "Ctrl+C...

2018-11-10 13:27:31 675

原创 同一服务器启动多个tomcat服务,tomcat启动后即停止

同一服务器启动多个tomcat服务,tomcat启动后即停止结论,由于同一个服务器上启动了多个tomcat服务,造成端口占用,故tomcat启动失败。只需要把两个tomcat冲突的端口修改成不一样的端口即可。异常日志01-Nov-2018 19:37:30.651 INFO [main] org.apache.catalina.startup.VersionLoggerListene...

2018-11-10 13:23:01 3504

原创 vim使用正则一次清除所有空行

vim使用正则一次清除所有空行命令%s/^\ *$\n//g For新手详细步骤1. 使用vim打开对应文件2. 按下Esc键,进入命令模式3. 按下 Shift + 冒号/分号 键4. 输入下面的命令%s/^\ *$\n//g 5. 按下回车键...

2018-11-10 12:58:21 643

原创 python学习笔记05-python面向对象编程

1.面向对象编程1. 类和实例注意,类的所有方法,的第一个参数一定是self。在调用类的方法时,不需要传入第一个参数self。 #!/usr/bin/env python# -*- coding: utf-8 -*-#定义一个类Student,继承自objectclass Student(object): #构造器 def __init__(...

2018-11-10 12:47:00 242

原创 shell 脚本中将输出内容赋值给一个变量时的换行问题(git tag命令内部有less命令)

shell 脚本中将输出内容赋值给一个变量时的换行问题(git tag命令内部有less命令)参考网址shell 脚本中将输出内容赋值给一个变量时的换行问题注意git tag命令内部有less命令示例msg=`git tag` &amp;&amp; echo "$msg"如题,将某命令的输出结果赋值给一个变量 a1、如果使用 echo $a 输出变量,则变量中的 换行...

2018-11-10 12:44:23 787

原创 shell脚本上传文件到ftp及I won't open a connection to xxx -- only to xxx错误

ftp上传文件到服务器/home/androidhotfix/hotfix-soft/inetutils/bin/ftp -p -niv &lt;&lt;- EOF open 101.71.xxx.xxxuser dxy XXXXXXXXXbinarycd /aspirin/hotfix/$patchTypeNamePathput $patchFileName $patchFil...

2018-11-10 12:25:44 8519

原创 如果执行 git tag或者git submodule等命令出现end这字样脚本不自动继续运行了(其实是内部执行了less命令)

如果执行 git tag或者git submodule等命令出现end这字样脚本不自动继续运行了(其实是内部执行了less命令)解决方案msg=`git tag` &amp;&amp; echo "$msg"git submodule foreach 'msg=`less build.gradle` &amp;&amp; echo "$msg"'git submodule f...

2018-11-10 12:24:13 1238

原创 去除vivo开发安装包的时候需要输入密码验证的烦人过程

1、安装vivo-app-debug.apk2、输入软件首页,输入你的vivo帐号的密码,键盘确认保存3、进入设置-搜索“辅助”-进入辅助功能-找到“vivo 免输入密码自动安装apk”-点击进行,并打开它4、设置app不被关闭,vivo多任务上锁1、点击左下角多任务栏2、找到上面安装的那个应用,右上角有一把小锁,点击一下即可锁定 github仓库下载地址(apk下载地址)...

2018-11-10 12:20:13 26309 7

原创 ios程序启动流程图

2018-10-30 09:46:19 522

原创 python学习笔记04-python模块

1.介绍一个.py文件就称之为一个模块(Module)Python按目录来组织模块——包(Package)每一个包目录下必须有一个init.py的文件,可以是空文件,也可以有Python代码。因为init.py本身就是一个模块,而它的模块名就是包名。 2.第一个模块任何模块代码的第一个字符串都被视为模块的文档注释sys模块有一个argv变量,用list存储了命令行的所有参数...

2018-10-29 22:13:36 109

原创 python学习笔记03-python函数式编程

1. 高阶函数1. 高阶函数基础变量可以指向函数函数名也是变量高阶函数允许传入函数 #!/usr/bin/env python#将函数赋值给变量A = absprint A(-10)#导入__builtin__模块import __builtin__#改变abs变量的指向__builtin__.abs = 20#输出abs变量print absabs = 3...

2018-10-22 23:51:52 149

原创 新版Mac上IDE中无法获取环境变量的问题

新版Mac上IDE中无法获取环境变量的问题Mac下为IDE或者应用设置环境变量Eclipe环境变量 Android Studio环境变量 Mac OS X environment variables and SAP GUI for Java添加环境变量launchctl setenv variable “value”删除环境变量launchctl unsetenv va...

2018-10-22 23:45:08 1564

原创 ubuntu桌面的环境变量

ubuntu控制桌面上的环境变量文件位置~/.xprofile例如在.xprofile文件添加export GTK_IM_MODULE=fcitxexport QT_IM_MODULE=fcitxexport XMODIFIERS="@im=xim"export XIM=fcitxexport XIM_PROGRAM=fcitx参考网址xprofile (简体...

2018-10-22 23:38:42 1325

原创 利用一个xml布局文件生成出一张图片以分享给好友

关于动态生成一张图片动态生成一张图片,有两种方法。一种方式是利用Canvas画图,这种方式的关键技术点是绝对定位和动态比例尺,用习惯了,写起来也不难。缺点嘛自然是不直观,改动也不方便。还一种方式是利用xml布局,最后将图片导出来。封装好工具类之后,使用起来则非常方便。写xml的时候呢,可以使用 px 单位来布局(为什么是 px?当宽高固定为图片本身大小时,只有它才能绝对定位),修改起来也比较方...

2018-10-22 00:05:05 3264 1

原创 python学习笔记02-python高级学习

1. 切片注意,list、tuple、字符串'xxx'、Unicode字符中u'xxx'都可以看成一种list。都可以进行切片操作。#定义一个list&gt;&gt; L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']#取出list的前三个元素&gt;&gt; L[0:3]['Michael', 'Sarah', 'Tracy']...

2018-10-21 12:56:49 127

原创 python学习笔记01-python基础学习

1. 输入和输出#!/usr/bin/env pythonname = raw_input('please enter your name:')print 'hello,',name2. 数据类型和变量十进制:100十六进制:0xff00浮点数:3.14科学计数:1.23e9字符串:'abc' "xyz"多行字符串: '''line1 ...

2018-10-20 19:57:00 221

原创 BitmapFactory.decodeStream方法及如何将Raw中的图片加载为Bitmap

结论将输入流传递给 BitmapFactory.decodeStream(in) 方法,创建完成 Bitmap 之后,开发者一定要主动去关闭这个输入流。否则,对输入流执行 reset() 方法,则可以重新获取输入流中的所有数据,并且创建出一张新的图片。从res-raw目录下获取一张Bitmap图片(工具类) public static @Nullable Bitmap ...

2018-10-19 18:06:17 9151

原创 新版android studio 找不到DDMS及monitor打开白屏或报错问题

新版android studio 找不到DDMS解决方案1. 先找到AndroidStudio配置的SDK路径菜单-File-Other Settings-Default Project Structure-Android SDK location比如,我的是:/Users/xxx/Library/Android/sdk 2. 在sdk目录的tools方便夹下,有一个 monit...

2018-10-08 21:26:49 5210

原创 遍历当前路径下目录并移动文件到当前目录下的tmp目录中脚本(处理了文件名空格和文件名重复问题)

遍历当前路径下目录并移动文件到当前目录下的tmp目录中脚本(处理了文件名空格)使用场景在我的某个目录下,有许多的文件和文件夹,我希望将这个目录下所有文件及所有子文件夹下的文件,移动到指定的一个目录下,同时,使用子文件夹的路径作为新文件名的前缀,以--作为分隔符。简单点说,就是消除目录层级此shell脚本考虑了文件名中包含空格的情况,当然,也不存在文件名冲突的问题。 脚本如下#!...

2018-10-07 23:07:20 936

原创 ViVo手机无法安装run出来的apk-testOnly run出来一直为true

说明点击Android Studio上面的绿色Run按钮,出来的debug apk的AndroidManifest.xml的android:testOnly="true",即使修改为false也没有用。可以使用Build-Build APK(s)来打出testOnly为false的apk,再使用adb命令安装。或者在gradle中强制修改testOnly为false。判断环境是否为测试环境...

2018-10-03 14:44:06 1051

Android AIDL Binder 实现与详解 Demo

Android AIDL Binder 实现与详解。此资源实现了 Android AIDL 通信,自定义 AIDL 数据类型。同时演示了定向 Tag 『inout in out』的区别。并且配有博文详细解释相关知识点以及需要注意的细节。

2019-10-20

python从入门到高级学习笔记

python从入门到高级,学习笔记。有基础学习,面向对象编程,错误,调试,IO编程,进程和线程,正则等等。示例清晰,文档丰富,是想到入python坑的最佳资料。

2017-03-23

apache源码安装教程及相关配置(linux-centos)

在linux(centos 6.5)上安装apache,使用的纯源码安装方式。包括,apr的安装、apr-util的安装、pcre的安装、httpd的安装、httpd.conf的配置、防火墙的配置(iptables)、www的默认路径配置、shell启停脚本的编写。

2016-04-05

使用Mbr引导Ubuntu系统或找回Ubuntu的Grub菜单

关于Ubuntu没有grub菜单或想要设置mbr引导ubuntu。 网上关于Ubuntu和Win7双系统的安装教程不少,但是,却极少有解决安装完双系统后,没有显示grub引导菜单的内容。当然,更加少有关于使用Mbr引导Ubuntu与Win7双系统的资料。我敢说,绝大部分玩双系统的都不会知道如何设置Ubuntu与Win7双系统利用Mbr引导。哈哈,我就是用了三年Linux到今天才无意中发现的。算是机缘巧合吧,是在帮一个朋友弄Ubuntu时发现的。因为之前在我心中一直以为只能使用grub引导Ubuntu与Win7双系统。当然,这里使用Mbr引导双系统,也是使用的一种变通的方法。另外,这里还提供了关于安装完Ubuntu后,Grub引导菜单默认不显示的解决方案,以及如何找回Win7选择项的解决方案。

2014-08-25

数据适配器的使用

ADO当代中关于数据适配器的使用 这是一篇学习笔记,里面有很多经典范例,用于给初学者学习参考之用,希望大家喜欢。

2012-08-15

使用ADO当代连接和访问数据库教程

使用ADO当代连接和访问数据库教程 这是一篇学习笔记,每个范例亲测可行。都是很经典的东西,供初学者参考学习之用。

2012-08-15

Flash 8学习笔记

这是我学习flash8时所做的笔记,供初学flash8的朋友学习参考之用,希望大家喜欢。

2012-08-15

空空如也

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

TA关注的人

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