adeng朝花夕拾】的更多相关文章

============================C/C++基础拾遗===================================== 1.指针: 函数指针做函数参数 回调函数 语法现象 意义 实现什么效果 (1).间接赋值成立的三个条件 a.两个变量 b.建立关联 c. *p-> (2).函数指针做函数参数 a.调用的角度去理解:谁调用函数指针做函数参数的api函数,谁提供回调函数的入口地址 b.项目/工程意义:把任务的编写者 和任务的调用者 给解耦合 c.为什么 叫做回调:本来…
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body { padding: 30px; } @font-face { font-family: fontawesome-mini; src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAzUABAAAAAAFNgAAQAAAAAAAAAAAA…
引言 shell,我们常常会用到,以其强大的功能,会帮助我们解决非常多棘手的问题.近期遇到一个问题,要跑非常多case,假设串行的执行,须要非常久.能不能让他们并行起来,但又不能全部case都并行执行呢?,由于全部case同一时候执行,机器会挂掉的. 1,方式1 比較直接的一种方式是,维护两个文件队列(*.start和*.stop)分别记录全部case的执行状态,然后依据并发数量来获取和分配资源. 代码例如以下: multi.sh: #!/bin/bash #Rill create to run…
(原创文章,转载请注明出处.) 开博了,简单感慨两句. 前些年一直在做质量体系建设及团队管理的事,忽略了对测试技术热度的保持,这两年有幸重回开发测试第一线,颇感欣喜. 近期随着公司新业务的开展,需要快速组建一套自动化测试框架,用于开展接口及UI自动化测试.虽然自己也曾基于公司业务系统从无到有码过一套测试框架,但由于开发时的思想同时受限于公司业务及框架的适用性上,导致最终虽然框架可完美支持业务,但在易用性.兼容性及可扩展性方面依然存在一定问题,维护成本较高. 根据大牛的推荐,有幸结识RF开源框架.…
一.Service是什么 对于这个问题,想必大家都能说出一二,如“它是四大组件之一”.“在后台处理一些操作”等.咱们这里看看官方文档中的描述,官方语言一般都是准确且言简意赅的,这里可以体验一下其风格.如下是从官方文档中提取的关键部分,比较容易看懂,咱就不翻译了,详情可以阅读原文[What is a Service:https://developer.android.google.cn/reference/android/app/Service.html#what-is-a-service]. A…
前言 只要是面试高级工程师岗位,Android跨进程通信就是最受面试官青睐的知识点之一.Android系统的运行由大量相互独立的进程相互协助来完成的,所以Android进程间通信问题,是做好Android开发高级工程师必须要跨过的一道坎.但是,我们是否真的清楚,Android中都有哪些方式实现跨进程通信呢?这些方式都有哪些优缺点?如何选择这些通信方式?Binder是什么?为什么要引入Binder?Binder是这么样实现跨进程通信的?AIDL是什么?AIDL和Binder又有什么关系呢?....…
前言        Android系统与其他操作系统有个很不一样的地方,就是其他操作系统尽可能移除不再活动的进程,从而尽可能保证多的内存空间,而Android系统却是反其道而行之,尽可能保留进程.Android这样设计有什么优势呢?又是通过怎样的方法来管理这些被保留的进程的呢?Android用户又该如何正确使用手机从而更好发挥Android系统所特有的优势呢?本文将一一为您解开这些谜团. 本文的主要内容如下:            一.Android进程管理的特殊设计 Linux系统对进程的管理…
前言 Android虚拟机的使用,使得android应用和Linux内核分离,这样做使得android系统更稳定可靠,比如程序中即使包含恶意代码,也不会直接影响系统文件:也提高了跨平台兼容性.在Android4.4以前的系统中,Android系统均采用Dalvik作为运行andorid程序的虚拟机,在android发展中具有举足轻重的地位,而Android 5.0及以后的系统使用ART虚拟机取代Dalvik,在性能上做了很大的优化.本文将对这两款虚拟机做一些介绍,主要内容如下: 阅读本文,建议结…
序言        笔者从事Anroid开发有些年头了,深知掌握Anroid性能优化方面的知识的必要性,这是一个程序员必须修炼的内功.在面试中,它是面试官的挚爱,在工作中,它是代码质量的拦路虎,其重要性可见一斑.在团队中,性能优化的工作又往往由经验丰富的老师傅来完成,可见要做好性能优化,绝不是一件容易的事情. 性能优化方面涉及的知识点比较广,有理论基础知识,也有实际操作技能,笔者将通过一系列的文章来进行整理,将主要包括Java虚拟机.内存分配.垃圾回收,android虚拟机.进程管理.内存优化.…
在上一篇日志([朝花夕拾]Android性能篇之(二)Java内存分配)中有讲到,JVM内存由程序计数器.虚拟机栈.本地方法栈.GC堆,方法区五个部分组成.其中GC堆是一块多线程的共享区域,它存在的作用就是存放对象实例.本节中所要讲述的各种场景,就发生在这块区域,垃圾回收也主要发生在GC堆内存中.本章内容为高质量面试中几乎是必问的知识点,尤其是其中GC Root.分代算法.引用类型等方面的知识点,可以很好地体现程序员的内功.本文主要是在相关文章的基础上进行搜集和整理而成,也包含了自己的一些理解和…
1.了解面向对象的编程思想以及面向对象的特性: 对象: EveryThing is Object: 万物皆是对象,在程序中,我们可以将类.接口.方法.属性等都认为是对象: 面向对象: 是一种程序设计方法,它以对象作为基本的单元来构建系统,它利用对象将系统的复杂性隐藏在对象里(即封装),从而构建大型的工业级系统和大型系统. 面向对象包括三个过程: 面向对象分析(OOA).面向对象设计(OOD).面向对象编程(OOP). 面向对象的三个特性: 继承.封装.多态 面向对象和面向过程的区别? 面向过程就…
1.Java语言语法规则和文件格式: 第一个Java程序:/** 第一个Java程序:控制台输出Hello world!*/public class Test{    //访问修饰符 class关键词用于声明类使用 后面跟类名   public static void main(String args[]){//程序的入口,主函数main方法:        System.out.println(“Hello world!”);// 输出语句   }} Java语言区分大小写:public 为访…
简介: Java是一种撰写跨平台应用软件的面向对象语言,1995年由Sun Microsystems公司推出. 2009年04月20日,甲骨文74亿美元收购Sun,取得java的版权. 2011年7月28日,甲骨文发布java7.0的正式版. 2014年3月19日,甲骨文公司发布java8.0的正式版. Java组成部分: (1)Java编程语言 (2)Java文件格式 (3)Java虚拟机(JVM) (4)Java应用程序接口(Java API) 当编辑并运行一个Java程序时,需要同时涉及到…
前言 在前面的文章中,介绍了不少触摸相关的知识,但都是基于单点触控的,即一次只用一根手指.但是在实际使用App中,常常是多根手指同时操作,这就需要用到多点触控相关的知识了.多点触控是在Android2.0开始引入的,在现在使用的Android手机上都是支持多点触控的.本文将对常见的多点触控相关的重点知识进行总结,并使用多点触控来实现一些常见的效果,从而达到将理论知识付诸实践的目的. 一.触摸事件感应的产生原理 在介绍多点触控前,我们先了解一下现在手机屏幕触摸事件感应的原理. 当前手机使用的屏幕一…
前言 转载请注明,转自[https://www.cnblogs.com/andy-songwei/p/11039252.html]谢谢! 在上一篇文章[[朝花夕拾]Android自定义View篇之(五)Android事件分发机制(上)Touch三个重要方法的处理逻辑][下文简称(五),请先阅读完(五)再阅读本文],我们通过示例和log来分析了Android的事件分发机制.这些,我们只是看到了现象,如果要进一步了解事件分发机制,这是不够的,我们还需要透过现象看本质,去研究研究源码.本文将从源码(基…
前言 一年前写过一篇文章[朝花夕拾]Handler篇,随着这一年来对Handler更多的认识和理解,本文对Handler知识点做的一些补充. 一.为什么要引入Handler Handler的主要作用是切换线程,将线程切换到Handler所使用的Looper所在线程中去,我们大部分的开发者通常使用Handler是用于子线程通知主线程更新UI,我们需要明确的是更新UI只是Handler的其中一个作用而已. 那么为什么只能在主线程中更新UI,而不能在子线程中完成呢?因为Android系统规定,只能在主…
一.前言 提起跨进程通信,大多数人首先会想到AIDL.我们知道,用AIDL来实现跨进程通信,需要在客户端和服务端都添加上aidl文件,并在服务端的Service中实现aidl对应的接口.如果还需要服务端给客户端发送信息,还需要再添加回调相关的aidl文件,以及使用RemoteCallbackList来辅助实现该功能.在我的另外一篇文章[朝花夕拾]Android性能篇之(七)Android跨进程通信篇中,就专门介绍过AIDL来实现客户端和服务端互相通信的方式,不清楚的可以看看这篇文章的介绍.本文将…
虽然平时都在用面向对象的思维编程.但是都是基于框架,很多技术细节一段时间不用就会逐渐模糊.拾遗部分:面向对象的三大特称:继承多态封装. 构造方法.__construct()  构造方法.再new的时候调用.析构方法. __destruct()   析构方法.分崩离析的意思.再对象销毁的时候调用.注意,虽然可以销毁对象,但是内存并不会因此而清除.php的销毁只是将内存地址与内容的关系绑定解除.而内存释放则要判断内存里面的内容是不是孤立的,再也没有其他的地方引用. 对象的成员属性非常好用,用的好可以…
Demo源码位置:http://git.oschina.net/zj2012zy/Android-Demo/tree/master/AndroidDemo/headset 一般需要用户信息的好多的也需要设置用户头像,通常设置用户头像的操纵要么从手机选择一张图片,要么直接通过手机拍照进行设置.示意图如下: 另外:制作手机的动态截屏,可以使用应用宝的动态截屏功能,非常的方便. 布局文件很简单:就是两个按钮加一个imageview用来显示设置好的头像,就不说了. 核心代码为如下四个函数: 1.选择一张…
源码地址:http://git.oschina.net/zj2012zy/Android-Demo/tree/master/AndroidDemo/setpregister 效果如下: 基本思路: 1.定义一个抽象类: RegisterStep public abstract class RegisterStep { public interface OnNextActionListener { void next(); void submit(); } protected Activity m…
为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: private List<Activity> activityList = new LinkedList<Activity>(); // 保存 所有activity的this public void addActivity(Activity activity) { activityList.add(activ…
在一个只有你而且还未知的世界中,不去探索未知,死守一处,你到底在守什么呢? 作为一个目前的android程序员,可能过去写着delphi的代码,可能未来回去搭建服务器.不管怎样,你现在是一名安卓程序员,是该告别eclipse的时候了. 今天早上开机,android studio 都更新到0.9.9了,大家都说他的强大.可能用惯了大刀长矛的武林高手并不习惯使用火枪洋炮,但是还是得用吧. 所以,自定义toast的Demo 源码位置:http://git.oschina.net/zj2012zy/An…
序言: 人的一生是一个选择的过程. 如果脚下只有一条路,只要一往无前即可,不用担心走错.即使是错也别无它法.然而人是不安分的,况且安于独木桥的行走,其目的地由于没有蜿蜒曲折去遮挡行路人的视线,一往无前的看到了头,既是终结.所以往往从心底生发出变化的心,已使自己在通往终结的路上能够领略不同的风景.选择的结果都是一样的,不同的是经历的不同.生而平等是不切实际的,所以更要用所有去捍卫选择的权利. 没有选择即没有人生. 宇宙世界到底是唯一的还是无数的,科幻的还是玄幻的,关乎自己或许有影响,或许只有悲惨的…
(一)javascript中的数组index属性——获取数组的索引值 例如:要做到这样的效果 点击每个选项时,会显示不同的div. 我们的做法:在javascript中,先把所有的div的display设置为none,然后在根据当前的数组里的索引值进行一个显示div的过程. 下面的例子就是: 首先,把妙味课堂.妙味茶馆.苗味视频选项的div设置为display:none: 然后,早在之前就以前设置好了数组的索引值 btn[i].index=i; 于是当所有div都设置为display:none后…
C++拾遗 更新一些平时遇到的小细节: 1.关于类的无参构造函数和带有全部默认参考值的构造函数的区别 书上说的是带有全部默认值的构造函数就是无参构造函数,私以为不以为然,来看下边这个例子: #include <iostream> using namespace std; class A { int a, b; public: A(, ) { a = c; b = d; cout << "调用无参构造函数" << endl; } }; void mai…
删除fork的项目   下载指定revision的repository 通过git log查看提交历史,最好是GUI查看 然后执行命令git reset –hard <sha1> 同步到最新代码可以执行git reset ––hard origin/master或者执行git pull…
.bash_profile和.bashrc .bashrc要保存个人的一些个性化设置,如命令别名.路径等. 每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效. 一般会在.bash_profile文件中显式调用.bashrc.登陆linux启动bash时首先会去读取~/.bash_profile文件, 这样~/.bashrc也就得到执行了,你的个性化设置也就生效了.但不是所有的Linux都存在bash_profile…
Q1:HTTP Error 403: Forbidden python中经常使用urllib2.urlopen函数提取网页源码,但是有些时候这个函数返回的却是:HTTP Error 403: Forbidden,这表明源网站不允许爬虫进行爬取 解决方法:伪装成浏览器进行访问 #!/usr/bin/env python# -*- coding: utf-8 -*-import urllib2 url = "http://www.google.com/translate_a/t?client=t&a…
bandit: cat特殊字符文件名 - cat ./- 空格 cat "abc def"  or cat abc\ def 列出隐藏文件:ll du -ab 递归列出文件大小,以字节为单位 find -group bandit6 -user bandit7 -size 33c #owned by user bandit7 - owned by group bandit6 - 33 bytes in size 输出唯一不重复的行 sort data.txt | uniq  -u uni…
前言        从Android6.0开始,Android系统对权限的处理产生了很大的变化.如果APP运行的设备系统版本为Android6.0或更高,并且target在23或更高,那么dangerious级别的权限将由之前的安装时授予变成运行时动态申请.这样一来,当运用到系统权限相关的功能时,就需要手动处理好权限申请的用户交互问题.本文将结合官网中的介绍,来全方位了解权限相关知识点,并介绍一些实际工作中可能用到的技巧. 本文的主要内容如下: 一.为什么要引入"权限" Android…