自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanglin10000的博客

Java设计模式

  • 博客(39)
  • 资源 (8)
  • 收藏
  • 关注

转载 Android rc 文件详解

作为Android系统的第一个进程,Init进程承担这很多重要的初始化任务,一般Init进程的初始化可以分为两部分,前半部分挂载文件系统,初始化属性系统和Klog, selinux的初始化等,后半部分重要通过解析init.rc来初始化系统daemon服务进程,然后以epoll的监控属性文件,系统信号等。init.rc则是init进程启动的配置脚本,这个脚本是用一种叫Android Init Language(Android初始化语言)的语言写的。如果你的进程请求Linux的特殊能力,就不要用这个命令。

2022-08-22 17:44:03 3101 1

转载 C++宏的使用方法总结

在输出日志时,除了输出错误信息外,如果能够把当前的文件名和行号一并打印出来,那就好了,这样的话就可以更快的定位问题了,之前说过,编译器已经为我们预定义了当前文件名和当前行号的宏,我们只要在输出日志时输出这些信息即可。第一次包含此文件时,__SYSTEM_API_H__还没有被定义,因此,头文件的内容被顺利的包含进来,同时,定义了该宏,如果此头文件被重复包含了,那么文件第一行的预处理指令将不会满足,因此文件也就不会被重复包含了。当你的代码中存在大量相似的、重复的代码时,使用宏可以极大的减少代码量,便于书写。.

2022-08-08 16:22:38 1614

原创 C++中指针和引用的区别

a. 指针是一个新的变量,存储了另一个变量的地址,我们可以通过访问这个地址来修改另一个变量;引用只是一个别名,还是变量本身,对引用的任何操作就是对变量本身进行操作,以达到修改变量的目的;c. 指针传参的时候,还是值传递,指针本身的值不可以修改,需要通过解引用才能对指向的对象进行操作,引用传参的时候,传进来的就是变量本身,因此变量可以被修改。b. 引用只有一级,而指针可以有多级;C++中指针和引用有哪些区别?...

2022-08-05 10:27:11 351

原创 C++基础之常量与指针

1、指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。”,p是地址,“*p”是数据。// ,指针的指向不可以修改,指针指向的值也不能修改。//常量指针 ,指针的指向可以修改,但是指针指向的值不能修改。//指针常量 ,指针的指向可以修改,但是指针指向的值不能修改。3、const 修饰既修饰指针也修饰常量 :指针的指向不可以修改,指针指向的值也不能修改。1、常量指针 ,指针的指向可以修改,但是指针指向的值不能修改。2、指针常量:指针的指向不可以修改,但是指针指向的值可以修改。...

2022-08-05 10:21:26 210

原创 Bluedroid: 蓝牙协议栈源码剖析

转载:https://www.shuzhiduo.com/A/KE5Q4yDMJL/

2021-11-18 11:45:55 651

原创 Android音频架构总结

一.音频总体的架构:二.Audio Policy•Stream类型选择合适的device :•音频管理策略管理音频的输入输出,它决定各种类型的声音优先送往系统哪个输出设备,或使用哪个输入设备进行采样。•比如,如果有蓝牙耳机或者耳机,将优先使用他们作为输入输出设备。•创建AudioTrack的时候会传入一个Stream类型,根据这个类型获得strategy,然后根据strategy获得一个device。•Stream类型选择合适的Strategy类型:...

2021-04-21 14:50:27 1418

原创 Android 系统源码之HandlerThread

HandlerThread是继承自Thread的,所以他本身就是一个线程。源码不多,就直接贴出来/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this...

2020-01-07 15:28:57 130

转载 App开发智能车载之SDK篇

原文地址:http://blog.csdn.net/appdevdaily/article/details/44156135App开发智能车载之SDK篇网络资源视频资源 - DevBytes:安卓车载介绍 http://v.youku.com/v_show/id_XODY4NjM1NTI0.html - 安卓车载系统设计介绍: http://v.youku.com/v_show/id_X...

2020-01-06 18:10:42 1658

原创 Android 系统源码之IntentService

IntentService是继承自Service的。启动方式跟service一样调用startService()代码不多这里就直接贴出来:/** 这里官方给了很好的解释 * IntentService is a base class for {@link Service}s that handle asynchronous * requests (expressed as {@l...

2020-01-02 11:58:54 128 1

转载 android手机各大分区详解

bootloader当我们拿到一款手机,第一件事应该就是按下电源键开机,那么从开机到进入到桌面程序这中间发生了些什么呢,注意:该结构图并不反映手机的实际分区顺序和位置,只是一个逻辑结构图。大家可以简单的把手机的ROM存储类比为我们电脑上的硬盘,这个硬盘被分成了几个分区:bootloader分区,boot分区,system分区等等。后面我们会逐渐介绍各个分区的用途。所谓的刷机我们可以简单的...

2019-12-10 13:50:58 633 1

原创 Handler机制的源码分析

四大对象:LooperHandlerMessageMessageQueue首先 ,在Android 的主线程ActivityThread的main()方法中 调用了Looper.prepareMainLooper();和Looper.loop()方法。 `public static void main(String[] args) { Trace.traceBegin(Trac...

2019-12-04 15:23:51 102

原创 Linux 中常用命令

命令基本格式:命令提示符:[root@localhost ~]#root 代表当前的登录用户(linux当中管理员账号是root)@ 无实际意义localhost 代表当前计算机的主机名~ 表示当前所在目录(家目录)# 表示超级用户的提示符 (普通用户为$)命令格式: 命令 [选项] [参数] ([]表示可以省略)个别命令的使用不遵循次格式当有多个选项时,可以写在一起简化选项和...

2019-11-22 15:42:20 105

原创 git分支的操作

@ git 本地分支与远程分支github上已经有master分支 和dev分支在本地git checkout -b dev 新建并切换到本地dev分支git pull origin dev 本地分支与远程分支相关联在本地新建分支并推送到远程git checkout -b testgit push origin test 这样远程仓库中也就创建了一个test分支TOC克隆代码...

2019-06-24 10:04:28 128

原创 Android中网络请求框架的封装-Retrofit+RxJava+OkHttp

Retrofit注解请求方法注解代码 请求格式@GET GET请求@POST POST请求@DELETE DELETE请求@HEAD HEAD请求@OPTIONS OPTIONS请求@PATCH PATCH请求请求参数注解代码 说明@Headers 添加请求头@Path 替换路径@Query 替代参数值,通常是结合get请求的@FormUrlEncoded 用表单数据提...

2019-05-30 11:20:35 400

原创 Android 内存优化-常见内存泄露

没有用的对象无法回收的现象就是内存泄露如果程序发生了内存泄露,则会带来如下的问题应用可用的内存减少,增加了堆内存的压力降低了应用的性能,比如会触犯更频繁的GC严重的时候可能会导致内存溢出错误,即OOM Error在正式介绍内存泄露之前,我们有必要介绍一些必要的预备知识。预备知识1: Java中的对象当我们使用new指令生成对象时,堆内存将会为此开辟一份空间存放该对象创建的对象可以被...

2019-05-30 11:10:10 118

原创 Android 内存优化- ANR 详解

1.1 何为ANRANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.1.2 为什么会产生ANR5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等).BroadcastReceiver在10s内无法结束.造成以上两种情况的首要原因就是在主线程(UI线程)里面做了太多的阻塞耗...

2019-05-30 11:06:55 1023

转载 Android性能分析工具常用汇总

Android性能分析工具整理汇总把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总…Debug GPU Overdraw类型:系统自带功能UI渲染检测功能(打开Settings,然后到 Developer Options -> Debug GPU Overdraw 选择 Show overdraw areas,手机系统设置中文的孩纸,自行对照翻译进去哈)作用:用来检...

2019-05-30 11:04:11 458

原创 Android 内存控制及OOM处理

内存溢出,是Android开发中常遇到的问题,解决起来总是摸不着头脑。今天爬爬就来讲讲如何定位内存溢出。1.OOM(内存溢出)和Memory Leak(内存泄露)有什么关系?OOM可能是因为Memory Leak,也可能是你的应用本身就比较耗内存(比如图片浏览型的,或者应用本身的设计有问题)。所以,出现OOM不一定是Memory Leak。同样,Memory Leak也不一定就会导致OOM,...

2019-05-30 11:01:45 243

原创 Android 中 Handler 引起的内存泄露

在Android常用编程中,Handler在进行异步操作并处理返回结果时经常被使用。通常我们的代码会这样实现。public class SampleActivity extends Activity {private final Handler mLeakyHandler = new Handler() {@Overridepublic void handleMessage(Message...

2019-05-30 10:59:40 225

原创 Android性能优化总结

采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated=“true”。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。View中设置缓存属性.setDrawingCache为true.优化你的布局。通过Android sdk中tools目录下的layoutop...

2019-05-30 10:58:03 284

原创 Java 常用设计模式

Java 中一般认为有23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握。总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模...

2019-05-30 10:53:48 93

原创 Linux常用命令大全(非常全!!!)

做了几年Android应用层开发,准备转底层了,熟悉下Linux操作系统。加油!!系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda ...

2019-05-30 10:39:28 108

原创 Android App性能优化技能,看这篇就够了

一.何为App的性能拿小车举例,大家知道什么是一辆小车的性能吗?同学甲说,是否省油、加速是否够快、开起来是否稳定、安全等等。没错,那就是小车的性能。那App的性能又是指什么呢?同学乙说,App启动是否够快,运行是否流畅,是否省电、省流量,安装包体积是否够小等等。是的,这就是App的性能。二.关注App性能,有什么用我们知道,一辆小车性能越好,加速越快,跑的越稳,越省油。App也一样,...

2019-04-29 13:47:07 207

原创 携程面试归来总结

楼主刚刚携程面试归来,总结一下吧。前天早上楼主在公司的班车上看到携程有在招聘Android工程师,本来想着试一试的,毕竟在魔都来说,携程也算是数一数二的互联网公司了。然而 下午下班刚到家,大约6点的时候接到了hr的面试邀请。于是楼主昨天便有幸直奔了SOHO的大楼,一个很漂亮商务办公综合体,环境算是棒棒的。进门一个很漂亮的前台美眉让我出示邀请码,然后给了我面试的小卡片,然后在电梯口保安很有礼貌的...

2019-04-19 15:24:34 2693

原创 MPAndroidChart的相关图表设置

//是否启用网格背景mChart.setDrawGridBackground(false);//是否设置Y轴坐标mChart.setDrawYLabels(false);//设置网格竖线是否显示mChart.setDrawVerticalGrid(false);// 设置在Y轴上是否是从0开始显示mChart.setStartAtZero(false);//是否在Y

2016-11-24 15:53:51 1874

原创 智能家居设计

ZigBee与Android的智能家居控制系统设计智能家居是在传统住宅的基础上,利用现代科学技术,诸如网络通信、安全防范、自动控制、音视频等技术将家居生活有关的各种家居设施集成,构成的高效、便利、舒适、节能环保的家居环境。随着无线移动网络的快速布局,现代的智能家居只要有一个无线智能设备,即能通过客户端实时查看到住宅中的一切动态。在目前,智能家居控制系统中,有基于面板和红外遥控器或蓝牙的智能

2016-11-06 21:47:55 2223

原创 android 常用方法总结

public class Toolkit {        /**      *       * Role:Telecom service providers获取手机服务商信息       *       * 需要加入权限     * android:name="android.permission.READ_PHONE_STATE"/>       * Date:

2016-08-28 17:53:22 876

原创 Android学习之位图BitMap

BitMap代表一张位图,扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/8=3072KB位图文件图像效果好,但是非压缩格式的,需要占用较大存储空间,不利于在网络上传送。jpg格式

2016-08-13 11:55:14 372

原创 Android日常开发总结的技术经验60条

1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。2. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用Lite系列框架LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节。3. 全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.4. 不要相信

2016-08-07 20:01:33 296 2

原创 android 数据缓存

一、缓存管理的方法缓存管理的原理很简:通过时间的设置来判断是否读取缓存还是重新下载;断网下就没什么好说的,直接去缓存即可。二、数据库(SQLite)缓存方式这种方法是在下载完数据文件后,把文件的相关信息如url,路经,下载时间,过期时间等存放到数据库,当然我个人建议把url作为唯一的标识。下次下载的时候根据url先从数据库中查询,如果查询到当前时间并未过期,就根据路径读取本

2016-07-31 00:03:17 738

转载 详解Android中AsyncTask的使用

在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下

2016-07-21 09:54:03 298

原创 Android Studio配置SVN

一、 Android Studio配置SVN Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion;在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到"svn.exe"即可; 在Use command line client

2016-07-12 16:03:37 1833

转载 Android自定义view详解

从继承开始懂点面向对象语言知识的都知道:封装,继承和多态,这是面向对象的三个基本特征,所以在自定义View的时候,最简单的方法就是继承现有的View123456789101112131415 public class SketchView extends View{ public SketchView(Context

2016-07-12 15:36:04 487

原创 svn客户端

AndroidStudio 的SVN 安装和使用方法与我以前用的其他IDE 都有很大差别,感觉特麻烦,网上相关资料很少,貌似现在 Git 比较流行,之前有用过 github 但是他只能是开源项目免费,下面总结最近自己安装和使用 SVN 的一些经验总结:如果遇到 ignore 或其他设置无效等意外情况,可以尝试重启 androidstudio 或执行下 svn 的 update 试试

2016-07-12 15:29:55 588

原创 Android的多分辨率适配的处理

Android的多分辨率,一向是设计师和开发者非常头疼的事儿。尽管如此,对于多分辨造成的复杂问题,也是大家要优先解决的。Android支持多种不同的dpi模式:ldpi 、mdpi 、hdpi 、xhdpi 、xxhdpi 、xxxhdpi 注意,ppi、dpi 是密度单位,不是度量单位 : * ppi (pixels per inch):图像分辨率 (在图像中,每英寸所包含的像素数目

2016-07-12 13:56:45 413

原创 Java数组拼接字符串几个写法性能比较

将数组 int[] arr = {0,1,2,3,4,5,6,7,8,9} 拼接成 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 字符串:StringBuilder sb = new StringBuilder(arr.length*3); // StringBuilder(arr.length*3)性能比StringBuilder()高sb.append("[");

2016-06-28 23:21:25 2610

原创 android sqlite3最全使用大全

Android的默认数据库引擎是精简版。SQLite是一个轻量级的事务数据库引擎,磁盘存储空间和内存占用都很少,因此在Android,IOS等手机操作系统上创建数据库,它是一个完美的选择。在处理SQLite时需要考虑的事情:1.数据类型完整性的维护不能依赖SQLite,你可以把某一数据类型的值放在另外一种数据类型的列中(例如把字符串存在整数列)。2.引用完整性不能依赖SQLite...

2016-06-27 08:59:14 775

原创 把二维数组存到数据库的一个字段中

怎样把二维数组存到数据库的一个字段中呢?又要方便从这个字段中取出来...可以自定义存放格式,例如XML1234567891011121314151617181920212223

2016-06-25 09:13:57 8625 1

原创 Android数据库SQLite表内设置外键

介绍Android默认的数据是SQLite,但SQLite3.6.19之前(在2.2版本中使用的是3.6.22,因此如果你的应用只兼容到2.2版本就可以放心使用外键功能)是不支持外键的,如果有两张表需要关联,用外键是最省事的,但不支持的话怎么办呢?这里就有一个解决办法,就是用事务将两张表关联起来,并且最后生成一张视图。现有两张表Employees Dept视图ViewEmp...

2016-06-21 21:09:53 1931

Xamarin 开发的读书APP

Xamarin 开发的读书APP,开发比较完善,登录注册到图书的搜索展示。

2019-03-29

Xamarin 开发的新闻客户端(完整版)

Xamarin 开发的新闻客户端;项目开发的较为完善,可作为项目参考学习。

2019-03-29

Xamarin ios入门开发指南api调用文档,内容详细

Xamarin ios入门开发指南api调用文档,内容详细。包含各个控件的使用,及蓝牙,地图等api接口

2019-03-28

Xamarin 跨平台入门指南

Xamarin 开发android ios 程序入门指南。内容详细。包含入门开发到程序上架全部流程及API

2019-03-27

Xamarin Android入门开发指南api调用文档,内容详细

Xamarin Android入门开发指南api调用文档,内容详细。包含各个控件的使用,及蓝牙,地图等api接口

2019-03-27

Android蓝牙灯控

支持Android设备通过蓝牙对led灯具的操控,包含数据发送及解析

2018-12-03

Android串口通信的标准格式代码

Android串口通信的标准格式代码,包含完整的数据发送解析,底层ndk的串口驱动

2018-12-03

SQLite数据库

可以快速导入 SQLite数据库,操作简单方便,数据库开发必备利器

2018-11-03

空空如也

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

TA关注的人

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