自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

转载 android进阶-java反射

一个类中有属性,方法,构造器等,比如说 有一个Person类,一个Order类,一个Book类,这些都是不同的类,现在需要一个类,用来描述类,这就是 Class,它应该有类名,属性,方法,构造器等。②先通过Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建实例。Method getDeclaredMethod(String name, Class[] params) 使用特写的参数类型,获得类声明的命名的方法。

2024-05-21 16:45:16

原创 android设计模式-代理模式

分为静态代理和动态代理,静态代理就是自己写相应的代理类和实现,动态代理就是用JDK自带的机制,jdk会在运行中动态的生成代理类;在例子中具体买房等方法理解成子类中介怎么去做,可以有很多的中介。而真正的代理类更像是如链家那个房子。去指派哪些人,分配哪些人去完成工作。其实用的依旧是java中最常见的继承、多态的关系。

2024-05-20 11:18:14 364

原创 android设计模式-工厂模式

(1)一个类不知道它所需要的对象的类:在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建;//---------------------之前没变的代码区域end---------------------////----------------工厂类和工厂接口换个角度设计(彻底改头换脸)----------------////---------------------之前没变的代码区域---------------------//

2024-05-16 20:33:12 562

原创 android设计模式-原型设计(深、浅拷贝)

原形模式是一种创建型模式,原形模式多用于创建复杂对象或者构造耗时的实例。它的作用主要是"克隆",用户从原形对象复制出一个内部属性一样的对象。因为类的初始化需要耗费很多的资源,原形拷贝则可以更高效。最后,原形模式其实就是对象的拷贝,这跟C++/Object-C中的clone类似,容易出问题的也就在深浅拷贝上,使用原形模式可以解决复杂对象构建资源消耗的问题。也可以用来只读保护。注意其clone时不会走构造函数。作者:Yink_Liu。

2024-05-15 17:23:42 536

原创 android设计模式-观察者模式

也就是平时的按键监控其实不仅是接口的调用和回调,也是个观察者模式//平常里的按钮事件监听例子//注册观察者//观察者实现@Override//这里可以知道要观察的对象的一举一动...});//拆分后buttonA ---->要观察的对象//要观察谁谁谁setOnClickListener() ---->观察者new OnClickListener() ---->观察者的实现//在实现里可以知道要观察的对象的一举一动。

2024-05-15 14:56:11 896

原创 android设计模式-builder模式

/返回的Builder对象,通过第一个返回的Build对象,能够去调用setX2.通过第二个返回的Builder去调用build(),build方法返回A的对象,并在启动也传入了builder对象。属性多的时候,使用set,get第二种方式,是解决了上面的问题,但是会让调用set方法的对象重复了20次或更多,同时也属于不连续的情况,该类的其他属性在被创建之后被修改,给程序带来了一些不安全性,像下面”商品.setX1("修改后的属性");商品.setX1("");商品.setX2("");

2024-05-15 10:23:35 268

原创 android设计模式-单例模式

防止编译器优化:编译器在优化代码时会尝试将变量的访问操作优化为更高效的方式,例如将变量的值缓存在寄存器中。然而,对于某些特殊的变量,如多线程环境下的共享变量、中断处理中的标志位、硬件寄存器等,这种优化可能会导致意外的行为。多用于整个程序只需要有一个实例,通常很消耗资源的类,比如线程池,缓存,网络请求,IO操作,访问数据库等。处理多线程共享变量:在多线程编程中,当一个变量被多个线程共享并且可能被一个线程修改时,需要使用 volatile 关键字来确保线程之间的可见性。确保一个类只有一个实例,并且自行实例化。

2024-05-14 15:42:21 470

原创 android进阶-回调

requestPermissions方法用于请求权限,而onRequestPermissionsResult回调方法用于接收权限请求的结果,并据此执行相应的操作。只是少了一个doWork,个人怀疑是在其他的地方,处理复杂的触摸、点击等操作,然后处理完后发生点击,回调回Onclick方法中,然后就能处理其他事情了。网络请求回调:在进行网络请求时(如使用 Retrofit、OkHttp),回调用于处理请求成功或失败后的操作。当接收到广播时,onReceive方法会被回调,允许开发者在此方法中执行相应的操作。

2024-05-13 17:24:50 912

原创 android进阶-AIDL

在实现AIDL的过程中服务端APP和客户端APP中要包含结构完全相同的AIDL接口文件,包括AIDL接口所在的包名及包路径要完全一样,否则就会报错,这是因为客户端需要反序列化服务端中所有和AIDL相关的类,如果类的完整路径不一致就无法反序列化成功。Android SDK 工具会自动生成基于该 .aidl 文件的 IBinder 接口,具体的业务对象实现这个接口,这个具体的业务对象也是 IBinder 对象,当绑定服务的时候会根据实际情况返回具体的通信对象(本地还是代理)"还书成功" : "还书失败");

2024-05-10 18:45:39 911

原创 android进阶-Binder

ServiceManager进程:ServiceManager的作用是将字符形式的Binder名字转化成Client中对该Binder的引用,使得Client能够通过Binder名字获得对Server中Binder实体的引用。Binder驱动:驱动负责进程之间Binder通信的建立,Binder在进程之间的传递,Binder引用计数管理,数据包在进程之间的传递和交互等一系列底层支持。原文链接:https://blog.csdn.net/ly0724ok/article/details/117566381/

2024-05-10 14:32:50 489

原创 android基础-服务

oncreate是服务第一次启动调用,onStartCommand是服务每次启动的时候调用,也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。同样使用intent来传递服务。

2024-05-08 18:41:21 355

原创 android基础-多线程

创建子线程,子线程不允许直接更新UI,试想下如果多个线程去更新UI,则会造成资源错乱,如果枷锁就会使得代码冗余复杂。doInBackground是在子线程中。另一种异步多线程方法。

2024-05-08 17:25:10 280

原创 android基础-通知

notificationcompat.builder后面可以跟很多的方法,不同方法不同效果,比如加一个音频.setSound(uri)使用PendingIntent来实现点击通知跳转到另一个活动。基于第一行android。

2024-05-08 16:51:53 85

原创 SQL手册

转:http://blog.csdn.net/web_gus/article/details/132122Select用途:从指定表中取出指定的列的数据语法:SELECT column_name(s) FROM table_name解释:从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT

2024-05-08 15:56:09 1055 1

原创 android基础-ContentProvider

权限:普通权限可以直接在xml中直接申请即可(之前安卓安装过程中一列的权限需求表),如果是危险权限,主要就是和隐私相关的。则需要动态的去申请(就是android之前的那种弹框)。相比于前面的持久化存储,持久化存储只能是在自身程序去使用各类数据,从它的存储路径就能够看出/data/xxxpackages/filexxx/xxx,ContentProvider主要用于不同的应用程序之间实现数据共享的功能。

2024-04-26 17:36:45 102

原创 android基础-数据持久化

save方法是从DataSupport来,更多查询删除新增百度下,这个开源库很好用。2.SharedPreferences,使用键值对的方式存储数据。Book类是写的各种getid()name 等方法。3.sqlite数据库存储,使用的时候直接百度下。1.数据存储在文件中,使用流的方式。还可以使用LitePal开源库。基于第一行代码-安卓。

2024-04-26 17:14:28 117 1

原创 android基础-广播

基于第一行代码-安卓。

2024-04-26 14:01:08 82

原创 android基础-fragment(碎片)

2024-04-26 10:16:14 72 1

原创 android基础-UI

基于第一行代码-安卓。

2024-04-25 15:34:41 86 1

原创 android基础-activity

onPause 如弹框,前一个activity已经失去了焦点,后一个弹框获取了焦点,前一个失去了与用户的交互。

2024-04-10 14:29:36 187

原创 4.8-2 类图

2024-04-08 15:40:30 69

原创 4.8-1 java基础

重写:就是父子类集成的时候,子类使用和父类相同的函数或者成员变量,将会使用子类的各类成员变量或者函数,隐藏父类的。因为当用父类的引用指向子类的对象,用父类引用调用方法时,找不到父类中不存在的方法。如果想要调用子类中有而父类中没有的方法,需要进行强制类型转换,如上面的例子中,将。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;子类中定义了同名同形式的静态方法,它对父类方法只起到隐藏的作用。这个时候需要进行向下的类型转换,将父类引用转换为子类的引用。用父类引用调用父类不存在的方法。

2024-04-08 15:37:29 400

原创 InputManager 简介

1.1. 模块按照进程空间,我大概把整个事件输入系统分为三个部分:kernel 收集事件上报,InputManager 读取事件并分发, InputQueue 接收事件。之间进程通信用的读写设备文件,以及共享内存等。1.2. 类关系本文主要介绍 InputManager 相关,其他模块不做过多讨论。InputManager 相关的主要类关系图:WindowManager 往上的还没有去看,先写写 c++ 层的部分。整个 InputManager 是通过 NativeI

2021-07-08 10:59:01 1100

原创 Android如何定制主题

目的:为了加强用户体验,增强品牌效应,使我们的产品有自己独特的风格,主题的定制将会是必然趋势……然而Android原生系统是不支持主题定制的,所以如何来定制主题,如何做得更好,需要大家集思广益……策略:将介绍两种定制主题的机制:1.根据Android Configuration Qualifier机制,加入我们自己的JRDTheme定制。2.用主题包的形式,根据用户选择不同的主题,而加载不同主题包中的资源。基本原理:首先介绍方式一:Android Configuration Qualifi

2021-07-06 15:03:13 477

转载 同步、异步、阻塞、非阻塞

简单点说:阻塞就是干不完不准回来,   非组赛就是你先干,我现看看有其他事没有,完了告诉我一声我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/IP协议栈没有足够的可用缓冲区来保存你C

2015-04-14 17:20:14 540

转载 c++ 常用库

非常惭愧,我过去也仅仅了解boost、STLport这样的库,以及一些GUI库,但是居然有如此众多的C++库,其实令我惊讶。当然,这个问题应该辩证的看,对于拿来主义确实可以直接使用这些库,但是如果学习和专业的开发,确实应该自己写,因为——适合的才是最好的。无论效率还是简洁性都是自己开发的好,否则还要那么多程序员干什么。程序就像做衣服,需要量身定做,拼凑起来的,一定不会好用,不过借鉴也是必须的,可以

2015-04-14 13:31:04 713

转载 c++ auto

C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断    auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用auto的例子。

2015-04-14 11:39:37 1659

转载 QT4.7.3安装mysql5.5系类驱动

最近由于要做一个软件,不得不又重新捡起放弃已经很久的QT,才发现版本更新的这么快。。。都到了4.7.3了在连接MYsql数据库的时候出问题了。没有驱动,Baidu了一下,又看了文档说明,原来是其他由于权限的问题,只给出了部分数据库的驱动(只有sqlite)其他的驱动只给出了源文件还有文档说明,需要自己编译,晕死,文档全是英文的,不太喜欢,没办法,边百度边看文档终于解决了问题,还是把这些东西贴出

2015-04-08 16:55:58 610

转载 面试10大问题

一、为什么想辞去先前的工作通常,这类问题是一定会被问及的,而且会是一个主要的问题,招聘单位能从中获取很多关于你的信息。因此,在回答这个问题时应该集中精力。像单位撤消、上班路途太远、专业不对口、搬家、结婚、生病休假等等人们都可以理解的因素,是尽可以如实道来的。可是,有些因素,谈起来就要很慎重了。比如:人际关系复杂,现代企业讲求团队精神,要求所有成员都能有与别人合作的能力;收入太低,这样回答会使对

2015-03-18 22:01:41 569

转载 SQL语句手册

转:http://blog.csdn.net/web_gus/article/details/132122

2015-03-15 15:51:26 539

转载 软件开发文档总集

目录第一部分 软件开发文档……………第2页一:软件需求说明书………………………………………………………..第2页二:概要设计规格说明书……………………………………………………………第3页三 :详细设计规格说明书……………………………………………….第4页四:模块开发卷宗………………………………………………第5页第二部分 软件管理文档……………第7页一:可行性研究报告……

2015-02-09 10:03:05 3387

原创 eclipse解压后无法启动

1.安装JDK2.在command line下运行【java -version】,能不能看到JDK的版本信息。3.如果可以,解压Eclipse,运行试试看。。以上几点操作后仍不行,把你的环境变量【path】的内容贴出来看看。。。此外JDK和eclipse的位数要统一,如JDK是32位,Eclipse最好也是32位。。如果系统是32位的,那JDK和Eclipse必须是32位如果系统式64

2015-02-05 17:27:35 1695

转载 Android开发环境搭建--新手必看

在开始Android开发之旅启动之前,首先要搭建环境 。打包下载开发环境所需软件http://pan.baidu.com/share/link?shareid=521417&uk=3206814945 1、jdk安装如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。 安装完成之后,可以

2015-02-05 17:25:20 396

转载 16进制字符串CString 如何转为 BYTE[]

方法一:转自:http://hi.baidu.com/jetqu2003/blog/item/fef7f7e98e834739b90e2d15.html需求:16进制字符串CString 如何转为 BYTE[]CString str ="01 02 03 04";BYTE cmd[1024];赋值后cmd[1024] = {0X01,0X02,0X03,0X04};

2015-01-29 13:54:31 1311

转载 MFC TCP客户端

继上一篇有关服务器的网络编程,这里继续探讨客户端如何发出连接服务器的请求,如何与服务器进行数据传输,如何与其他客户端交换数据,最后如何断开与服务器之间的连接。关键技术就是TCP/IP协议,socket默认使用的是非阻塞式异步传输通讯方式,对应MFC中的CSoket类,采用的是面向连接的TCP协议而不是UDP协议。工具/原料Vi

2015-01-29 09:38:42 2254

转载 MFC TCP服务器

Windows程序开发中,如果涉及到网络编程的话,一般少不了socket,socket作为应用层与传输层之间的一个抽象层,可以理解为应用程序与网络协议之间的编程接口。我曾通过MFC开发了一个简单C/S(客户端/服务器)模式的应用程序,主要是为了实现手机控制电脑,android网络编程也可以通过socket实现,这里以PC端编写服务器程序和客户端程序为例说明socket编程的一般步骤。

2015-01-29 09:36:34 2926 1

转载 STL 可用在MFC中,与QT的QMap类似

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有

2015-01-28 17:03:44 781

转载 MFC 打印调试的三种方法

在调试MFC程序时,我们经常需要查看特定位置变量的输出值。或者在某特定条件执行时,给出一个输出标识。一般来说,有3种方法:1) 调用TRACE(LPCTSTR lpszFormat, ...)函数    在MFC中使用TRACE函数来打印输出结果却是非常方便,和在控制台程序中使用printf函数的使用方法和效果类似。不过有几点      需要注意:一,TRACE函数

2015-01-27 15:10:04 737

转载 回调函数

对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。   什么是回调函数?  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。  为什

2015-01-26 09:44:34 386

转载 指针函数与函数指针的区别

from:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表

2015-01-26 09:37:11 334

platform-tools_adb.zip

adb 版本为1.0.4.0 linux ,直接使用,放在linux的环境变量中就可以了

2019-12-09

空空如也

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

TA关注的人

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