Android内存优化-方式二:避免静态对象对Activity或Service的引用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaoming168/article/details/88946527 把Activity作为Context直接传给静态对象, 单例模式不正确的获取context public class LoginManager { private Context context; private static LoginManager manager; public static Lo
分类: 其他 发布时间: 04-01 23:35 阅读次数: 0

Android内存优化-方式三:函数需要传递Context参数时,避免直接传递Activity

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaoming168/article/details/88946570 Android上 ,Context可以用于很多操作,但是大部分时候是用来加载以及使用资源。这就是为什么所有的widgets在他们的构造函数中接受一个Context参数。在一般的android应用中,通常有两种Context:分别是Activity和Application。通常的,当咱们的类和方法需要使用到context时,咱们
分类: 其他 发布时间: 04-01 23:35 阅读次数: 0

工程实践:让变量命名做到"自解释"

在上一篇文章中跟大家分享了关于函数命名的一些实践心得,今天我们继续命名这个话题,来讲一讲如何对变量命名。 以下是本文的目录大纲: 一. 变量命名风格 二. 变量命名最高境界 三. 变量命名最佳实践 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作
分类: 编程语言 发布时间: 04-01 23:35 阅读次数: 0

Android内存优化-方式四:谨慎使用SingleInstance模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaoming168/article/details/88946659 Android的单例模式在我们项目开发中经常会用到,不过使用的不恰当的话也会造成内存泄漏。因为单例的静态特性使得单例的生命周期和应用的生命周期一样长, 这就说明了如果一个对象已经不需要使用了,而单例对象还持有该对象的引用,那么这个对象将不能被正常回收,这就导致了内存泄漏。 我们来分析一下,为什么会内存泄漏呢? AppManag
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

python之smtplib邮件发送

虽然一般自动化持续集成中都用Jenkins来发送邮件,但了解掌握一下python的smtplib模块发送邮件也是必要的。 先明确一下发邮件的步骤: 1.确定邮件服务商:网易、qq等 2.登录邮箱:用户名/密码(密码一般是授权码) 3.编辑邮件主题、内容、附件 4.发送邮件 最简单的实现: server = smtplib.SMTP('smtp.163.com',25) server.login(emailname,emailpwd) # 登录 # 邮件内容 msg = '''\\F
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

Linux-基础学习(二)-基本部署

开始今日份整理 1.软件包安装 1.1 yum命令 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。 尽管 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决, 而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。 Yum 软件仓
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

算法学习之BFS、DFS入门

算法学习之BFS、DFS入门 0x1 问题描述 迷宫的最短路径 给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。如果不能到达,输出“不能走到那里”。(N,M<=50,起点,终点分别用S,G表示) 输入样例:N=5,M=5 #S### ..##. #.### ..### ..G## 1 2 3 4 5 6 输出:5 0x2 BFS解法 bfs用来求解最短路径相当
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

系统环境准备

1、新建用户 2、赋予sudo权限 3、关闭防火墙 查看防火墙状态     systemctl status firewalld 永久关闭防火墙     systemctl stop firewalld.service #停止     firewallsystemctl disable firewalld.service #禁止firewall开机启动 无需重启主机,再次查看状态确认即可 4、关闭SELinux 查看SELinux状态     getenforce 参数说明     enfor
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

eclipse 使用Git教程

做一夜搬运工: https://www.cnblogs.com/heal/p/6427402.html https://blog.csdn.net/fan510988896/article/details/56277822
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

基数排序——Java实现

一、基数排序思想 相比其它排序,主要是利用比较和交换,而基数排序则是利用分配和收集两种基本操作。基数 排序是一种按记录关键字的各位值逐步进行排序的方法。此种排序一般适用于记录的关键字为整数类型的情况。所有对于字符串和文字排序不适合。 实现:将所有待比较数值(自然数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。 基数排序的两种方式: 高位优先,又称为最有效键(MSD),它的比较方向是由右至左
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

洛谷 - P2805 - 植物大战僵尸 - 最大流 - 最大权闭合子图

https://www.luogu.org/problemnew/show/P2805 最大权闭合子图的特点是,假如你要选一个结点,则要先选中它的所有子节点。正权连S负权连T,容量为绝对值,原图有向边连容量INF。 这里的特点是在于假如这些结点形成了回路,那么不能选中其中任何一个因为没有突破口。 至于为什么要反向建图,是为了使用拓扑排序把回路以及进入回路的结点剪掉,但是不影响网络流图中从属于回路的子节点。 (反向建图后,原本从属于回路的变成可以进入回路,拓扑排序则会把入度非0的剪掉则一举剪除所
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

第一次学习笔记

一、目录和路径 附加:打开终端:ctrl+alt+t 清屏:ctrl+l 在终端在退出锁定:ctrl+c 1.目录:又称为文件夹,是包含所有的文件 目录创建规则: (1)大小是256 (2)不能包含特殊字符 (3)见名知义 2.路径:是反应目录和文件的位置 (1)[绝对位置]文件位置: windows:盘符:\文件夹\文件.avi linux: /home/主文件夹/0520/day01/a (2)[相对位置]当前目录所在位置为 0520 ./day01/a day03 ../day01/a
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

python增删改查用法

列表,元组 查 索引(下标) ,都是从0开始 切片 .count 查某个元素的出现次数 .index 根据内容找其对应的位置 "haidilao ge" in a 增加 a.append() 追加 a.insert(index, "内容") a.extend 扩展 修改 a[index] = "新的值" a[start:end] = [a,b,c] 删除 remove("内容") pop(index) del a, del a[index] a.clear() 清空 排序 sort () re
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

Access-Control-Allow-Origin: *

access-control-allow-headers: Authorization, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, X-Requested-By, If-Modified-Since, X-File-Name, X-File-Type, Cache-Control, Origin access-control-allow-methods: GET, POST, OPTIONS, PUT, DE
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

读书笔记_Effective_C++_条款三十五:考虑virtual函数以外的其他选择

看书走一遍
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

Linux -- nginx

一. 网络服务   web服务器和web框架的关系 web服务器(nginx):接收HTTP请求(例如www.baidu.com)并返回数据 web框架(django,flask):开发web应用程序,处理接收到的数据   nginx # 面试技巧 支持高并发,能支持几万并发连接 资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M 可以做http反向代理和负载均衡 支持异步网络i/o事件模型epoll 二 . Tengine Tengine是由淘宝网发起的
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

技术规格说明书

项目技术规格说明书 简述 网站整体结构 数据库技术 在alpha阶段,我们使用sqlite作为数据库。在beta阶段时,我们将其移植到MySQL。 前端技术 前端框架我们打算继续沿用之前项目所采用的bootstrap框架,对页面进行完善和重构设计。之前项目中所采用的部分JavaScript可以继续使用,在此基础上进行更多JavaScript的编写。 后端技术 这个项目是接手学长的项目,考虑到该项目的后端框架使用的是Django,我们也没有理由更换新的框架。 不仅如此Django具有以下特点:
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

Eclipse中使用printf报错 提示参数类型不对

报错信息: The method printf(String, Object[]) in the type PrintStream is not applicable for the arguments (String, double) 如果jdk的编译版本不同,语法也会不同 项目 》属性》Java complier》complier compliance lever:1.5
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

frp源码剖析-frp中的mux模块

前言 frp几乎所有的连接处理都是构建在mux模块之上的,重要性不必多说,来看一下这是个啥吧 ps: 安装方法 go get "github.com/fatedier/golib/net/mux" 该模块很小,不到300行,分为两个文件:mux.go和rule.go。 因为rule.go文件相对简单一些,我们先来看这个。 role.go文件 首先看其中所命名的函数类型MatchFunc: type MatchFunc func(data []byte) (match bool) 该类型的函数用
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0

Javascript数组中常用的排序法 ——冒泡排序法和选择排序法以及快速排序法

所谓排序法,就是对一组无序的序列进行有序的排序(从大到小或者从小到大),那么什么叫冒泡排序法,冒泡排序法又是怎么实现数组的有序排列呢? 1、 冒泡排序法(Bubblesort) 冒泡排序法的具体实现方法是这样的,从数组的第一个元素`arr[0]`开始,两两比较**(`arr[n],arr[n+1]`),如果前面的数大于后面的数(`arr[n] > arr[n+1]`),那么交换两个元素的位置,把大的数往后移动。这样依次经过一轮比较以后,最大的数将会被交换到最后的位置。总的来说,冒泡排序法就是两
分类: 其他 发布时间: 04-01 23:34 阅读次数: 0