
android
文章平均质量分 68
满地星辰
这个作者很懒,什么都没留下…
展开
-
常用内存分析命令及常见内存泄露分析思路
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 · 777 阅读 · 0 评论 -
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 · 1432 阅读 · 0 评论 -
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 · 1134 阅读 · 0 评论 -
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 · 4712 阅读 · 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 · 456 阅读 · 0 评论 -
getApplicationContext 返回 null 原因及解决方案
getApplicationContext 返回 null 原因及解决方案Get application context returns null.原因从下面可知 mApplication 在 attachBaseContext 方法被调用之后才被赋值final void attach(Context context, ActivityThread aThread, ...原创 2019-05-08 13:21:49 · 11773 阅读 · 0 评论 -
什么是MVP?—— 关于标准MVP与把P层当网络层使用的区别
1. 对于 MVP 常常有许多人觉得,MVP 和 MVC 也没有什么区别啊。MVP 框架不过只是一个噱头吧。说实在的,刚接触 MVP 的那段时间,我也有同样的困惑。大家天天说的 MVP,怎么看上去和 MVC 那么像呢。除了代码变多了,怎么一点也看不到 MVP 有什么用,有什么区别。随着反复的理解 MVP 模式,看了大量网上所谓“牛人”写的各种 MVP(实际许多理解都不透彻),集百家之长,有一天,我...原创 2018-12-18 01:25:18 · 2184 阅读 · 0 评论 -
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 · 731 阅读 · 0 评论 -
去除vivo开发安装包的时候需要输入密码验证的烦人过程
1、安装vivo-app-debug.apk2、输入软件首页,输入你的vivo帐号的密码,键盘确认保存3、进入设置-搜索“辅助”-进入辅助功能-找到“vivo 免输入密码自动安装apk”-点击进行,并打开它4、设置app不被关闭,vivo多任务上锁1、点击左下角多任务栏2、找到上面安装的那个应用,右上角有一把小锁,点击一下即可锁定 github仓库下载地址(apk下载地址)...原创 2018-11-10 12:20:13 · 27368 阅读 · 7 评论 -
利用一个xml布局文件生成出一张图片以分享给好友
关于动态生成一张图片动态生成一张图片,有两种方法。一种方式是利用Canvas画图,这种方式的关键技术点是绝对定位和动态比例尺,用习惯了,写起来也不难。缺点嘛自然是不直观,改动也不方便。还一种方式是利用xml布局,最后将图片导出来。封装好工具类之后,使用起来则非常方便。写xml的时候呢,可以使用 px 单位来布局(为什么是 px?当宽高固定为图片本身大小时,只有它才能绝对定位),修改起来也比较方...原创 2018-10-22 00:05:05 · 3592 阅读 · 1 评论 -
BitmapFactory.decodeStream方法及如何将Raw中的图片加载为Bitmap
结论将输入流传递给 BitmapFactory.decodeStream(in) 方法,创建完成 Bitmap 之后,开发者一定要主动去关闭这个输入流。否则,对输入流执行 reset() 方法,则可以重新获取输入流中的所有数据,并且创建出一张新的图片。从res-raw目录下获取一张Bitmap图片(工具类) public static @Nullable Bitmap ...原创 2018-10-19 18:06:17 · 9444 阅读 · 0 评论 -
新版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 · 5675 阅读 · 0 评论 -
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 · 1150 阅读 · 0 评论 -
ReactNative 在丁香医生项目中引入的踩坑日记
ReactNative 在丁香医生项目中引入的踩坑日记this没绑定到函数导致空指针参考React-Native 踩坑第二弹-undefined is not a function(evaluating 'this.setState(...))为什么在es6在这种情况下不需要bind thisReact Native绑定this(bind(this) ES5语法React.create...原创 2018-10-03 14:41:33 · 3011 阅读 · 0 评论 -
Dagger2-Android不支持泛型Activity的注入
Dagger2-Android不支持泛型Activity的注入像下面这样定义的Activity,如果使用dagger2注入和会报错。public class TestActivity<T extends Fragment> extends AppCompatActivity{}@ActivityScope@ContributesAndroidInjector(mod...原创 2018-10-03 14:29:14 · 1194 阅读 · 0 评论 -
Java垃圾回收机制及常见垃圾收集器
一、内存泄露Java的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有时也将其称为“对象游离”。 二、如何判断无用对象1、引用计数法(Reference Counting Collector)引用计数是垃圾收集器中的早期策略。在这种方法中,堆中每个对象实例都有一个引用计数。当一个对象被创建时,且将该对象实例分配给一个变量,该变量计数设置为1。任何引用计数器为...原创 2018-10-01 12:05:29 · 501 阅读 · 0 评论 -
关于使用javassist-ClassPool在gradle插件中修改某个类被重复调用的bug(缓存问题)
关于使用javassist-ClassPool在gradle插件中修改某个类被重复调用的bug(缓存问题)背景描述由于一些第三方库,如ARouter或者Retrofit封装得不够完善,即难以自己写一个类似的库,又在互联网上找不到类似的库。那么可以考虑动态修改这类第三方库,插入一些自己需要的代码或者监听器。相比静态修改(拉取别人的代码,再修改)的优势在于,当这类第三方库出新版时,可以平滑升级...原创 2018-10-03 13:49:18 · 1375 阅读 · 0 评论