自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (3)
  • 收藏
  • 关注

转载 [转]android 使用SAF框架操作外置sd卡

原文:https://blog.csdn.net/hyc1988107/article/details/83825237

2019-07-04 10:33:30 331

原创 Android中使用Handler造成内存泄露的分析和解决[转]

Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,同样会被GC回收。...

2018-05-14 15:02:27 260

转载 转-java虚拟机内存区域的划分以及作用详解

一、运行时数据区       什么叫运行时数据区呢,看下图就知道了,今天的重点就围绕这张图讲。                      1、程序计数器(寄存器)                       当前线程所执行的字节码行号指示器            字节码解释器工作依赖计数器控制完成            通过执行线程行号记录,让线程轮流切换各条线程之间计数器互不影响        ...

2018-05-14 10:03:48 257

原创 android jni so有关问题

处理.so文件时有一条简单却并不知名的重要法则。你应该尽可能的提供专为每个ABI优化过的.so文件,但要么全部支持,要么都不支持:你不应该混合着使用。你应该为每个ABI目录提供对应的.so文件。当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。在x86设备上,libs/x86目录中如果存在.so文件的话,会被安装,如果不存在,则会选择armeabi-v7a中的.so文件,...

2018-03-28 17:51:09 172

原创 Java设计模式-装饰模式

1:使用场景需要透明且动态的扩展类的功能时2:UML图3 代码举例public abstract class Person { public abstract void dressed();}public class Boy extends Person{ @Override public void dressed()

2017-11-09 14:53:11 258

原创 Java设计模式-适配器模式

1:使用场景1)接口不兼容2)建立一个可以重复使用的类,用于一些彼此没有太大关联的一些类3)需要一个统一的输出接口2:UML图3: 代码举例

2017-11-06 18:00:53 214

转载 爱奇艺Android移动客户端app瘦身经验

2017-09-29 Jully 何俊林今天分享是来自兄弟部门移动客户端的瘦身经验。欢迎大家关注爱奇艺技术产品团队公众号,更多来自爱奇艺公司技术分享和总结。作者|Jully作者介绍Jully, 2010年毕业于哈尔滨工业大学,2013年加入爱奇艺,目前是技术产品中心高级程序媛。从事爱奇艺Android移动客户端开发工作,主要负责客户端

2017-10-12 17:06:55 1216

转载 Android软键盘删除键触发Activity的返回事件

今天突然发现一个bug,自己的EditText在删除内容时,总会触发Activity的返回事件,可是昨天明明是好好的。于是调试一番才突然醒悟:原来是我今天重写了onKeyDown监听,但是忘记过滤KeyCode了,如此简单……public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEve

2017-08-02 09:42:56 728

原创 Java设计模式-建造者模式

1:使用场景1)相同的方法,不同的执行顺序,产生不同的事件结果2)多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不同3)产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用4)当初始化一个对象特别复杂,如参数多。2:UML图3:代码举例

2017-07-31 11:52:53 303

原创 Java设计模式-原型模式

1:使用场景1)类初始化需要消耗非常多的资源,包括数据或硬件资源,通过原型拷贝可以避免2)通过new产生一个对象需要非常繁琐的数据准备过程或权限控制,这时可以使用原型模式3)一个对象需要提供给其他对象访问,而且各个调用者可能都需要改变其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝2:UML图3:代码举例:public class

2017-07-28 19:11:13 268

原创 Java设计模式-抽象工厂模式

1:

2017-07-28 16:09:41 237

原创 Java设计模式-工厂方法模式

1:使用场景在任何需要生产复杂对象的地方,都可以使用工厂方法模式,用new可以完成创建对象无需使用工厂方法模式2:UML图3:代码举例public abstract class Product { public abstract void method(); }public class ConcreteProductA extends Product{

2017-07-25 17:59:10 237

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

1:使用场景     确保某个类有且仅有一个对象的场景,避免产生多个对象消耗过多资源。例如:访问io和数据库资源,这时就要考虑使用单例模式。2:UML图              关键点:        1:构造方法为private(该类不能通过new的方式产生对象)        2:   通过静态方法或枚举返回单例对象        3:确保在多线程环境下,产生的对

2017-07-24 17:30:14 296

原创 Android开发-让EditText输入时得软键盘的确认键变为搜索键

1:在布局文件中的EditText增加如下属性:android:imeOptions="actionSearch2:Java代码中增加如下:et_input.setOnEditorActionListener(new TextView.OnEditorActionListener() {                @Override       

2017-06-07 11:09:21 3602

原创 Tinker热修复接入详解(入坑并出坑篇)

注:当然一开始要参考Tinker的详细说明,链接如下:https://github.com/Tencent/tinker/wiki下面就是我自己一步一步操作,并完成接入Tinker,而且入坑并出坑的过程。1:android studio自己创建个工程2:工程的build.gradle中添加以下代码: dependencies { clas

2017-06-06 19:09:55 4543

原创 JAVA设计模式之单例模式[转]

概念:  Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:  1、单例类只能有一个实例。  2、单例类必须自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例。  单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、

2017-04-07 18:19:59 298

转载 设计模式之单例模式二(解决无序写入的问题)

public class Singleton{ private static Singleton instance; //构造函数设置为私有使之不能被外界实例化 private Singleton(){ } //获得实例 public static Singleton getInstance(){ if(instance==null){ synchron

2017-04-07 17:34:36 790

转载 解决GridView未设置margin、padding容器内出现空隙有关问题

GridView未设置margin、padding容器内出现空隙问题    查看sdk源码最好才发现是gidview的listSelector中的图片grid_selector_background_xx.9.png  画了可见区域导致的空隙。  解决办法很简单:  android:listSelector="@android:color/transpare

2017-03-29 14:34:18 1285

原创 Android解决ScrollView异步加载数据后发生滚动的问题

问题:当Android布局中有一个ScrollVIew,其内部有一段内容是需要在线加载的。当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚。如果需要禁止这种行为的发生只需要在ScrollVIew的唯一根布局中添加如下设置即可:android:focusable="true"  android:f

2017-03-14 16:08:32 1225

转载 drawable文件夹详解

QVGA使用ldpi,虽然有不同尺寸,但都是120dpi左右;HVGA同理;如下图;-finger    用于触摸屏的设备-hdpi    近似于240dpi的高级显示密度的屏幕-mdpi    近似于160dpi的中级显示密度的屏幕-ldpi    近似于120dpi的低级显示密度的屏幕-land    横屏显示

2017-02-05 19:14:40 622

原创 微信小程序开发详解(十)---微信小程序样式基础

样式属性为如下内容:1  尺寸2  背景3  边框4  边距5  文本6  其他(列表,内容,表格)未完待续。。。

2017-01-12 14:48:03 16436 6

原创 微信小程序开发详解(九)---微信小程序布局基础

1:Flex布局Flex布局如图1所示图11.1 Flex容器属性1.2 Flex容器内元素属性

2017-01-03 09:30:41 91353 10

转载 Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)

http://blog.csdn.net/javazejian/article/details/50896505

2016-12-29 14:36:38 419

转载 【转】java&android线程池-Executor框架之ThreadPoolExcutor&ScheduledThreadPoolExecutor浅析(多线程编程之三)

http://blog.csdn.net/javazejian/article/details/50890554

2016-12-29 10:56:01 822

原创 微信小程序开发详解(八)---微信小程序页面生命周期和参数传递

1:页面的生命周期在初始页面:index.js中增加如图1所示代码图1点击“编译”后,运行这个小程序:日志如图2所示:初始页面index.js启动会从app,js中的生命周期方法调用开始:onLaunch---onShow,然后开始调用index.js页面中的生命周期方法:onLoad---onShow---onReady,当点击“后台”时,页面index.js进入后台,这时回

2016-12-27 16:04:45 28463

原创 微信小程序开发详解(七)---微信小程序APP生命周期

1:微信小程序APP的生命周期方法:在微信小程序工程中的app.js中增加如图1所示方法图1编译运行,查看日志如图2,图3所示:微信小程序启动时,调用生命周期方法为:onLaunch方法(app.js)---onShow方法(app.js)---onLoad方法(首页面:index.js的onLoad方法)图2图3当将小程序置于后台(开发工具左下角有

2016-12-27 14:46:04 12256

原创 微信小程序开发详解(六)---微信小程序配置

1:参考https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html?t=20161222这里讲解了APP的页面配置,window配置,tabBar配置,网络配置等信息如图1,图2所示:图1图2

2016-12-27 11:46:10 2414

原创 微信小程序开发详解(五)---微信小程序事件

1:事件冒泡在微信小程序开发工具中,新建event文件夹,新建文件,在event.wxml中填写如下代码:  这里是view 1             这里是view 2                         这里是view 3              在event.wxss中填写如下代码:.view1{  height:

2016-12-27 10:33:16 7016 4

原创 微信小程序开发详解(四)---微信小程序开发组件使用初步

1:建立一个微信小程序的工程2:请参考如下链接里面的内容,这是微信小程序的官方开发指南:https://mp.weixin.qq.com/debug/wxadoc/dev/component/button.html?t=201612223:可以拷贝部分例子程序到你建立的工程中,使用微信小程序的组件,如图1所示:图1

2016-12-26 15:33:17 14106 3

原创 微信小程序开发详解(三)---微信小程序工程目录结构

1:打开微信小程序开发工具,进入编辑模式,如下图1所示图11:这个项目主要由pages/firstPage,pages/index,pages/logs,这几个文件夹组成,这几个文件夹主要描述整个小程序的界面信息。每个文件下基本可以分为:.js,.wxml,.wxss,.json等文件组成。例如:index.js:描述index页面的逻辑信息(类比:js代码)ind

2016-12-15 15:02:59 8843 4

转载 Android屏幕适配全攻略(最权威的官方适配指导)

点击打开链接

2016-12-14 16:02:56 552

原创 微信小程序开发详解(二)---开发工具使用简介

1:PC桌面打开微信小程序开发工具(微信web开发者工具),如图1所示:        图12: 用微信扫描图1中的二维码

2016-12-13 17:01:27 3113

原创 微信小程序开发详解(一)---开发准备

一  注册微信开发者账号登录:https://mp.weixin.qq.com/  进行注册.目前仅支持企业和组织等非个人注册微信小程序账号,注册详细情况可以参见如下链接:http://kf.qq.com/faq/140806zARbmm161103r6vmiA.html注:如果仅仅是为了学习开发微信小程序,可以注册微信服务号。二  微信开发者工具下载由于微信公

2016-12-13 16:50:38 3034

原创 PC通过ADB控制Android手机模拟点击,滑动,输入等事件(包括控制多台Android手机)

可以通过如下ADB命令实现PC对Android手机的模拟输入,点击,滑动等事件,进而对Android手机的操作与控制。1:adb  input keyevent     这条命令模拟Android手机按下了event_code对应的按键。   event_code表如下:

2016-12-05 14:24:43 29337 2

原创 Java JNI调用dll中的C代码的流程

Java JNI调用dll中的C代码

2016-10-30 21:39:23 658

转载 提供给大家一些Android好资料---安卓巴士Android开发神贴整理

安卓巴士Android开发神贴整理http://www.apkbus.com/android-19658-1-1.html分享45个android实例源码,很好很强大.收藏吧http://www.apkbus.com/android-20978-1-1.htmlGoogle Android开发精华教程http://www.apkbus.com/android-135

2012-07-19 11:05:56 875

转载 Linux 进程调度原理

<br />Linux 进程调度原理  <br /> <br />进程调度依据 <br /><br />  调度程序运行时,要在所有可运行状态的进程中选择最值得运行的进程投入运行。选择进程的依据是什么呢?在每个进程的task_struct结构中有以下四项:policy、priority、counter、rt_priority。这四项是选择进程的依据。其中,policy是进程的调度策略,用来区分实时进程和普通进程,实时进程优先于普通进程运行;priority是进程(包括实时和普通)的静态优先级;counter

2011-01-05 09:56:00 404

转载 如何从零开始开发一款嵌入式产品

如何从零开始开发一款嵌入式产品 【此文系转载】【此文系转载】<br /><br />首先,如果你有幸看到这篇文章,千万不要试图在2个小时内阅读完,就算你2个小时阅读完,我相信你也不会理解里面讲解的精华之处,我相信,你应该将此文章,慢慢品尝,这绝对是一篇需要品尝2~3天,再结合自己过往的经验,加上自己的思考,我相信会对你不仅仅是技术能力,甚至包括整体的思维方式都会有一个非常大的提高。 我写这篇文章的目的,是用本人20年的嵌入式经验呈现给大家一副完整的产品,项目开发蓝图,用本人多年经的历总结了一些教训无私的分享

2010-11-26 17:27:00 915

原创 Keil4 建立STM32工程详解

<br />1:安装mdk412,用注册机注册,这个过程不详细叙述了。<br /> <br />2:在本地某个路径下建立STM32工程文件夹,命名:my_STM32,并在my_STM32下建立rvmdk文件夹,并在rvmdk文件夹内建立    obj,list两个文件夹。<br /> <br />3: 打开Keil4.<br /> <br />4: 选择Project菜单->New uVision Project...,选择.../my_STM32/rvmdk文件夹的路径,并命名工程文件:my_STM32,

2010-11-16 16:27:00 17746 5

转载 STM32学习(三)——库文件添加 

<br />前面我们讲解了工程的建立和配置。这次我们主要针对添加工程文件进行讲解。添加工程文件有2种方式,下面我就说一下。<br />一、一种是在点击右键—选择 “add file to “user””来添加。如下图<br /><br />选择以后,会弹出下图对话框,用来选择对应文件,可以多选。<br /><br />二、第二种就是用过工具栏或者点击右键选择manage component来添加,如下图所示2种方式<br /><br />选择以后,弹出下图对话框,下面我们来添加库文件。<br /><br /

2010-11-16 11:29:00 3863

Keil4 建立STM32工程详解

适合于STM32开发的初学者,一步一步教你怎么建立STM32的工程

2011-09-02

C语言进阶(适合深入开发C程序)

C语言进阶,详细介绍C语言开发中容易忽视的细节

2010-09-21

硬件工程师的必备文档---高速PCB设计指南

高速PCB设计指南设计经验,设计流程,硬件工程师的必备文档

2009-04-13

空空如也

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

TA关注的人

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