随笔分类 -  android提高篇

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 89 下一页
摘要:Android USB 开发详解 先附上 Android USB 官方文档 Android通过两种模式支持各种 USB 外设和 Android USB 附件(实现Android附件协议的硬件):USB附件和USB主机。USB开发需 Android 3.1(API级别12)以上。由于本人工作中只用到了 阅读全文
posted @ 2018-08-10 14:52 brave-sailor 阅读(8567) 评论(1) 推荐(2)
摘要:线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此一来会大大降低系统的效率。可能出现服务器在为每个 阅读全文
posted @ 2018-08-08 14:24 brave-sailor 阅读(350) 评论(0) 推荐(0)
摘要:为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简单的管理 在Java中,线程池的概念是Executor这个接口,具体实现为ThreadPoolExecutor类,学习Java 阅读全文
posted @ 2018-08-08 11:51 brave-sailor 阅读(230) 评论(0) 推荐(0)
摘要:初始化顺序:父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父类的非静态变量(父类的非静态代码块)-->父类的构造函数-->子类的非静态变量(子类的非静态代码块)-->子类的构造函数 值得注意的是:父类的非静态变量(父类的非静态代码块)是同一级的,看哪个部分写在类 阅读全文
posted @ 2018-08-08 10:41 brave-sailor 阅读(329) 评论(0) 推荐(0)
摘要:上一篇Java接口 详解(一)讲到了接口的基本概念、接口的使用和接口的实际应用(标准定义)。我们接着来讲。 一、接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com.wz.factoryDemo; interface Fruit{ public void eat() 阅读全文
posted @ 2018-08-03 10:32 brave-sailor 阅读(341) 评论(0) 推荐(0)
摘要:一、基本概念 接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来 阅读全文
posted @ 2018-08-03 10:30 brave-sailor 阅读(646) 评论(0) 推荐(0)
摘要:这几年针对Android推出了不少View注入框架,例如ButterKnife。我们首先来了解一下使用这些框架有什么好处,其实好处很明显:它可以减少大量的findViewById以及setOnClickListener代码,简化了代码,让我们的代码看起来条理更清晰,可读性变强。 可能大多数对于这一类框架,都只是停留在用的阶段,但是作为一个程序员,我们有必要去了解它是如何实现的。其实它... 阅读全文
posted @ 2018-08-01 17:43 brave-sailor 阅读(399) 评论(0) 推荐(0)
摘要:原文链接:http://blog.csdn.net/u013045971/article/details/53433874 什么是注解 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序 阅读全文
posted @ 2018-08-01 17:01 brave-sailor 阅读(415) 评论(0) 推荐(0)
摘要:一、强制设置方向 1.Activity 如果要强制设置一个Activity的横竖屏可以通过Manifest去设置,跟Activity相关的信息都会保存在ActivityInfo当中。 android:screenOrientation=["unspecified" | "user" | "behin 阅读全文
posted @ 2018-08-01 13:54 brave-sailor 阅读(783) 评论(0) 推荐(0)
摘要:Surface的管理 Surface是窗口能真正显示到物理屏幕上的基础,由surfaceflinger管理,可以通过WindowStateAnimator.java中的变量mDrawState来查看每个窗口相关的surface的状态。 surface有5中状态: WindowStateAnimato 阅读全文
posted @ 2018-08-01 13:52 brave-sailor 阅读(766) 评论(0) 推荐(0)
摘要:Android窗口系统第一篇—Window的类型与Z-Order确定 Android窗口系统第二篇—Window的添加过程 上面文章梳理了一个窗口的添加过程,系统中有很多应用,每个应用有多个Activity,一个Activity上有一个Window,WindowManagerService是怎么管理 阅读全文
posted @ 2018-08-01 13:51 brave-sailor 阅读(435) 评论(0) 推荐(0)
摘要:以前写过客户端Window的创建过程,大概是这样子的。我们一开始从Thread中的handleLaunchActivity方法开始分析,首先加载Activity的字节码文件,利用反射的方式创建一个Activity对象,调用Activity对象的attach方法,在attach方法中,创建系统需要的W 阅读全文
posted @ 2018-08-01 13:48 brave-sailor 阅读(620) 评论(0) 推荐(0)
摘要:Android的窗口系统是UI架构很重要的一部分,数据结构比较多,细节比较多。本篇文章主要介绍窗口相关数据结构和抽象概念理解,关于[窗口部分的博客]计划如下。 1、窗口Z-Order的管理 2、应用程序和WMS的联系 3、窗口的添加,WindowState的创建 4、Token管理,AppToken 阅读全文
posted @ 2018-08-01 13:47 brave-sailor 阅读(1002) 评论(0) 推荐(0)
摘要:在Java中,根据错误性质将运行错误分为两类:错误和异常。 在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异常对象将传递Java运行时系统,这一异常的产生和提交过程称为抛弃(throw)异常。 当Java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找 阅读全文
posted @ 2018-08-01 10:44 brave-sailor 阅读(550) 评论(0) 推荐(0)
摘要:在发现这个类之前,一直是用的handler,子线程发消息,UI线程进行倒计时的显示工作。前几天在做一个倒计时显示的时候发现了这个类,用起来非常方便 翻看了下源代码。内部已经帮我们实现了handler的子线程操作 CountDownTimer这个类用起来非常easy。两个參数。几句代码搞定,例如以下: 阅读全文
posted @ 2018-07-31 16:16 brave-sailor 阅读(324) 评论(0) 推荐(0)
摘要:一、前言 今天要打包新产品,突然忘了混淆的参数是怎么写的了,虽然之前也混淆过,可是具体配置的参数代码有些记不起来了,因此决定花点时间写篇博客记录一下,方便以后查找和自己的记忆。 二、Android Studio 代码混淆基本配置 在工程目录下,找到 proguard-rules.pro 文件,它就是 阅读全文
posted @ 2018-07-31 13:48 brave-sailor 阅读(649) 评论(0) 推荐(0)
摘要:前言 在使用Android Studio混淆打包时,该IDE自身集成了Java语言的ProGuard作为压缩,优化和混淆工具,配合Gradle构建工具使用很简单。只需要在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后我们就可以到proguard-rules.pro 阅读全文
posted @ 2018-07-31 11:59 brave-sailor 阅读(511) 评论(0) 推荐(0)
摘要:今天编译工程总过不去,查看失败原因,因为ndk的mips编译不过去。 A problem occurred starting process ‘command ‘/Users/didi/Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux- 阅读全文
posted @ 2018-07-31 11:14 brave-sailor 阅读(684) 评论(0) 推荐(0)
摘要:ThreadPoolExecutor机制 ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供 阅读全文
posted @ 2018-07-30 14:35 brave-sailor 阅读(363) 评论(0) 推荐(0)
摘要:为什么用线程池 博客地址 http://blog.csdn.net/qq_25806863 原文地址 http://blog.csdn.net/qq_25806863/article/details/71126867 有时候,系统需要处理非常多的执行时间很短的请求,如果每一个请求都开启一个新线程的话 阅读全文
posted @ 2018-07-30 14:27 brave-sailor 阅读(275) 评论(0) 推荐(0)

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 89 下一页