- 博客(46)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 Android的死机、重启问题分析方法
Android的死机、重启问题分析方法1...死机现象... 51.1 死机定义... 51.2 死机表现... 51. 系统简图...52. 可能死机的原因...62...死机分析数据... 7Backtrace.73...几种典型的异常情况... 153.1 Deadlock. 1
2016-01-27 10:26:00 22191 3
原创 类加载过程
文章目录JVM生命周期结束的方式类的加载,链接和初始化类的加载1.类加载器2.类加载方式3.加载结果4.加载时机注意:这里和初始化时类的主动调用不一样,类的加载就算不是初次主动调用也会加载。类的连接1. 验证2. 准备注意:之所以说是静态成员变量而不是实例变量,是因为我们在加载类的时候并还没有实例,自然就没有实例对象3. 解析3.类的初始化注意:所有类或者接口只有在类被首次主动调用的时候才进行初始...
2019-09-09 16:41:47 328
原创 ClassLoader类加载器
文章目录路径JAVA_HOMEPATHCLASSPATHClassLoader双亲委托传递性加载方式源码分析自定义classloader自定义ClassLoader测试代码ThreadContextClassLoader 线程上下文加载器Android中的ClassLoaderBootClassLoaderBaseDexClassLoaderPathClassLoaderDexClassLoade...
2019-09-09 16:38:53 484
原创 泛型与通配符
文章目录泛型泛型方法泛型类通过反射获取泛型类对象通配符上下限泛型泛型提供了编译时类型安全检测机制,程序员可以在编译过程中发现非法的类型,泛型的本质是参数化类型,即数据类型作为一个参数泛型方法单参数泛型方法示例如下:public static <E> void say(E arg){ System.out.println(arg);}//泛型方法有<E>...
2019-08-16 10:29:14 190
原创 代理模式
代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展情景如下:你想要跟小美约会看电影吃饭,要先经过他家人审查同意,小美才能出来看电影,看完电影小美的家人会问她中不中意你1.首先定义一个女性接口(服务类),方法是看电影和吃饭public interface Date { void watchMovie(); void eatDinner();...
2019-08-15 09:55:13 184
原创 如何将自己的库开源分享到github上?
我们在github上经常会找到好用的第三方库,在build.gradle中添加依赖就可以了,但是如何将自己的库分享出去给别人使用呢?本文记录了如何将自己的库分享到平台上。文章目录如何将自己的库开源分享?1.创建项目2.创建module3.分享到github4.Github上发布Release版本5.Jitpack上发布可用版本6.引用库1.项目build.gradle中添加代码2.在Modul...
2019-08-05 14:46:37 669
原创 融云集成单聊与会话列表
写在前面,因为公司做的项目需要聊天功能,所以在网上找了下方案后,果断选择了融云,因为免费,有100个测试位。本来没想着写这个文章,无奈融云的文档写的相(fei)当(chang)简(la)单(ji),在系统里建工单问客服问题,回复太慢了,所以记录下来,防止大家继续踩坑。融云集成步骤1.注册去融云官方网站注册,点击官方网址,2.获取app key 和 app secert登录成功后可以...
2019-05-15 14:39:48 1727 3
原创 接口和抽象类
接口和抽象类的区别和联系抽象类abstract修饰的方法称之为抽象方法。包含抽象方法的类称为抽象类。抽象类可以包含多个抽象方法。抽象类不能够实例化,只能通过实现继承他的子类来实例化。abstract不能和final,static, private ,native同时修饰 方法。abstract不能和final,static, private 同时修饰 类。抽象类例子publi...
2018-12-27 17:00:20 170
原创 Glide 源码分析(三)
Glide源码分析(三)写在前面之前一直想看看Glide的源码实现是如何做的,现在终于有时间了,写下来Mark下。Glide的流程查看本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出M...
2018-10-08 17:51:11 227
原创 Glide 源码分析(二)
Glide源码分析(二)写在前面之前一直想看看Glide的源码实现是如何做的,现在终于有时间了,写下来Mark下。Glide的流程查看本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出M...
2018-09-27 16:18:12 172
原创 Glide 源码分析(一)
Glide源码分析写在前面之前一直想看看Glide的源码实现是如何做的,现在终于有时间了,写下来Mark下。Glide的流程查看本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Ma...
2018-09-27 11:34:45 331
原创 View 系列一之事件体系
View事件体系View的基础知识点什么是View?View是界面层控件的抽象,可以是一个具体的View,也可以是ViewGroup,本身包含很多子View。View的参数1.top = getTop(); 2.left = getLeft(); 3.right = getRight(); 4.bottom = getBottom(); 5.width = ...
2018-02-05 17:54:17 280
原创 Activity生命周期和启动模式2
生命周期和启动模式生命周期正常的生命周期从启动到销毁的完整生命周期:oncreate->onstart->onresume->onpause->onstop->ondestory oncreate与ondestory对应,onstart与onstop对应,onresume与onpause对应,对应的分析角度不同,oncreate与ondestory从界面的创建与销毁的角度看,on
2018-01-25 14:36:19 203
原创 Proguard 混淆之乱谈4 问题及debug
Proguard不混淆的坏处,Proguard用法,Proguard混淆使用模板。 接下来看看使用Proguard混淆产生的问题和如何进行debug。混淆产生的问题官方文档,点进去看,里面有详细的介绍。如何进行Debug1.查看出错日志2.通过mapping.txt查看映射关系3.在mapping.txt中找到对应的函数4.针对具体出的情况进行处理。
2018-01-15 16:56:33 363
原创 Proguard 混淆之乱谈 3 混淆模板
之前的文章谈了没有混淆的坏处Proguard 混淆之胡谈1和混淆的用法Proguard 混淆之乱谈2,没看的童鞋可以看下。基础部分混淆####基础混淆#####指定代码的压缩级别-optimizationpasses 5# 混淆时不使用大小写混合,混淆后的类名为小写# windows大小写不敏感,linux下可以不用添加-dontusemixedcaseclassna
2018-01-15 15:23:33 423
原创 Proguard 混淆之乱谈 2
之前说了产品不进行安全措施的后果,没看的童鞋可以看下。《Proguard 混淆之乱谈1》接下来欢迎Proguard闪亮登场!1.什么是Proguard?ProGuardis a Java class file shrinker, optimizer, obfuscator, and preverifier. The shrinking step detects and re...
2018-01-15 12:14:03 601
原创 ProGuard 混淆之乱谈 1
在进行APP开发的时候,基本的两项技术是需要掌握的,应用反编译和应用混淆。反编译是针对优秀apk进行反编译,查看酷炫的功能是怎么实现的,等等。混淆是为了防止隔壁老王对开发出来的APP进行反编译,注入代码后打包使用,用之进行不可告人目的的行为。我们现在模拟一下,某年某月某日,坏蛋联盟开会.会长发言:“针对正在写文章的这个小子开发的应用,我们的目标是?”会员:“搞垮它,搞垮它,搞垮...
2018-01-12 12:19:31 342
原创 仿微信游戏圈文章点赞与评论功能
在做项目的时候,PM来了,说咱们加一个文章评论点赞功能吧,你看微信balabalabala,然后就简单搞了下,效果图如下:主要如下:1.整体是一个listview。2.二级回复的listview不需要滚动,所以自定义listview,计算它的高度并全部显示。3.在展开对沙发的回复的时候使用了比较笨的办法,用数据源中的标记去判断是否展开还是不展开,有好的方法欢迎留言4.布局有...
2018-01-08 15:45:46 2511 1
原创 Activity 生命周期
使用app的时候,不会因为有来电通话或者切换到其他app而导致程序crash。 用户没有激活某个组件时不会消耗宝贵的系统资源。 离开app并且一段时间后返回,不会丢失用户的使用进度。设备发生屏幕旋转时不会crash或者丢失用户的使用进度。Resumed:该状态下,activity处在前台,用户可以与它进行交互。(通常也被理解为"running" 状态) Paused:该状态下,activ...
2018-01-08 11:30:30 173
原创 Swift UITableView 插入及自动滚动到底部
//// ViewController.swift// Proclamation//// Created by on 16/12/15.// Copyright © 2016年 . All rights reserved.//import UIKitclass ViewController: UIViewController,UITableViewDelegate,
2016-12-15 18:16:14 3351
原创 Swift 时间格式转化
利用NSDateFormatter类可以进行时间格式与时间戳之间的转化:param: stringTime 时间为string:returns: 返回时间戳为strings*/static func stringToTimeStamp(stringTime:String)->String { var dfmatter = NSDateFormatter() dfma
2016-12-05 15:54:13 2400
原创 Swift 获取时间之NSDate扩展
extension NSDate{ func Year() -> Int { let curCalendar:NSCalendar = NSCalendar.currentCalendar() let componentYear:Int = curCalendar.component(NSCalendarUnit.Year, fromDate: self)
2016-11-23 10:12:28 829
转载 swift 开发 导航栏隐藏无效解决办法
我在viewdidload 里面加了下面三句都没效果,求大神解答?123self.navigationItem.hidesBackButton = true;self.navigationItem.setHidesBackButton(true, animated: false)self
2016-10-24 18:48:25 2647
原创 Swift 学习第一天
1.在swift语言中,var 定义变量,let定义常量,let定义之后不能再被赋值2.类型 var str = " hello" 有个自动推断,根据hello的内容判断str的类型var str:String = "hello" 则手动定义str的类型为String,不用再根据内容推断str的类型3.字符窜连接var str = "hello"var s
2016-10-01 15:26:29 349
原创 HelloChart折线图属性及方法
List pointValues = new ArrayList();// 节点数据结合 Axis axisY = new Axis().setHasLines(true);// Y轴属性 Axis axisX = new Axis();// X轴属性 axisY.setName("温度");//设置Y轴显示名称 axisX.setN
2016-09-09 17:51:49 6502 2
原创 Activity生命周期
每次关于activity的状态保留和更新,在哪个阶段保存,哪个阶段刷新,看下面这个图就很清楚了。一般都是三个比较重要的阶段,create,pause和resume。生命周期图如下(网上来源)。...
2016-07-27 11:18:50 352
原创 PMS 启动流程
1.在SystemServer中启动PackageManagerService.main2.newPackageManagerService()并添加到ServiceManager中3.newinstaller(建立installer和installd的socket连接,最终在底层实现install,remove,dexopt等功能)4.通过systemConfig
2016-05-10 14:56:50 1504 1
原创 Android 关机流程 从kernel到framework
Android6.0关机流程Android系统关机有如下方式:1.定时关机、2.命令行输入reboot重启、3.长按电源键出现关机对画框等,本文以长按电源键为例来分析基于Android 6.0的高通源码。长按电源键会启动Android系统的按键消息处理机制。每个activity具有一个phonewindow对象,每个phonewindow对象具有一个DecorView对象,每个DecorV
2016-05-09 17:25:21 6569
原创 Android 如何避免(降低)后台程序被杀?
为防止某些进程被low memory意外杀掉,可以将其加入白名单,降低误伤的概率;一般,low memory killer会首先选择adj value徘徊在9~15的process去结束生,所以这个主要就是通过提高adj value的值来降低被杀概率; private final boolean updateOomAdjLocked(ProcessRecord app, int hidd
2016-04-05 19:14:53 5380
原创 Android 应用利用反射机制获取/设置系统属性值
使用adb shell 中的getprop 可以获取属性的值,但是在应用开发中因为systemproperties的hide属性,所以无法直接访问到get和set函数。通过网上的教程可以通过反射机制来获取get和set函数,具体代码如下:/* * method to setprop * */ static public void setprop(String ke
2016-03-31 16:48:12 3365
原创 Linux 分区名称和磁盘路径匹配 及 磁盘读取
Android 基于linux开发,所以linux的基本命令在android手机上是可以执行的,基于这个原理,可以使用 Linux 的dd命令进行移动端磁盘读取与保存。1.首先进入如下目录:/dev/block/platform/7824900.sdhci/by-name在该目录下ls,就可以看到分区名称和对应的磁盘,如下:rwxrwxrwx root
2016-03-04 14:02:13 1769
原创 Adb Shell 下content使用
在 Adb shell 后可用content对数据库(uri)进行简单的query,insert,update等操作,具体如下:1.conent 帮助文档如下:usage: adb shell content [subcommand] [options]usage: adb shell content insert --uri [--user ] --bind [--bind
2016-01-20 20:01:48 12407 2
原创 Android 数据库操作
最近在做自动话测试应用开发,涉及到database的操作。简单写下 Sqlite的query操作。private static final String DATABASENAME = "/data/data/com.example.zhangjinlu.automatictest/settings.db"; private SQLiteDatabase sqLiteDatabase
2016-01-20 19:40:47 461
翻译 Android Init.rc 语法分析
本文翻译自system/core/init/readme.txtAndroid Init语句主要有四大类说明语句构成:行为(Action)、命令(Command)、服务(Service)和选择(Option)。Init语句以行为单位,由用空格隔开的字符构成。C语言的反斜杠通常用作往字符中插入空格的用途,而双引号则可以避免字符被空格符分隔成多个独立的字符,当反斜杠用在一行的末尾的
2015-04-13 15:40:52 526
原创 命令录制与回放:script and scriptreplay
如果可以,视频是能够清楚说明一个人的意图所在,在linux中,我们可以做相似的工作 --命令录制与回放命令如下:script -t 2>timing.log -a out.sessioncomands 1;comands 2;..exit如上录制结束,回放则使用如下命令:scriptreplay timing.log out.session
2015-01-23 09:42:08 852
转载 GitHub详细教程
GitHub详细教程转载自http://blog.csdn.net/tangbin330/article/details/9128765,感谢原作者。1 Git详细教程1.1 Git简介1.1.1 Git是何方神圣?1.1.2 重要的术语1.1.3 索引1.2 Git安装1.3 Git配置1.3.1 用户信息1.3.2 高亮显示1.3.3 忽
2014-12-24 10:27:15 540
转载 Ubuntu 14.04 Mac 主题美化
为Ubuntu 14.04 安装MAC OS X 主题2014年06月03日 ⁄操作系统, 资源分享⁄ 共 5087字 ⁄ 字号 小 中 大 ⁄暂无评论 ⁄ 阅读 636 次 1: Mac wallpapersDownload Mac OS X Wallpapers2: DockyFrom last MacBuntu pack I recommended
2014-07-27 13:07:39 3827 1
CocoaMQTT 使用问题,求高手指点迷津!!!
2016-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人