<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[松仔]]></title><description><![CDATA[好的习惯决定一生]]></description><link>https://blog.youkuaiyun.com/ls703</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ls703]]></copyright><item><title><![CDATA[Android知识体系之ThreadLocal-------------Handler的灵魂]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/83142537</link><guid>https://blog.youkuaiyun.com/ls703/article/details/83142537</guid><author>ls703</author><pubDate>Fri, 19 Oct 2018 17:26:20 +0800</pubDate><description><![CDATA[
说明： 本文参考Android7.0 源码，请读者注意

如果大家仔细看过Handler 的源码之后，就会发现其主要角色Looper类中有个ThreadLocal对象。
  // sThreadLocal.get() will return null unless you've called prepare().
    static final ThreadLocal&amp;amp;amp;amp;amp;amp;amp;amp;lt;Looper&amp;amp;amp;amp;amp;amp;am]]></description><category></category></item><item><title><![CDATA[Android 检测输入键盘是否弹起]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/80609869</link><guid>https://blog.youkuaiyun.com/ls703/article/details/80609869</guid><author>ls703</author><pubDate>Thu, 07 Jun 2018 15:31:14 +0800</pubDate><description><![CDATA[博客为 有时个哥 原创，如需转载请标明出处：在公司开发SDK时，有这么一个需求，要检测集成我们SDK的应用，是否弹出了输入软键盘。因为不知谁会集成SDK，并且为了检测键盘的同事不影响客户的应用开发，最终采取了一下方式进行检测。原理就是使用ViewTree检测窗口布局的变化。   activity.getWindow().getDecorView().getViewTreeObserver()
  ...]]></description><category></category></item><item><title><![CDATA[Android数据库框架---------- 注解加反射，构建简单Sql数据库框架]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/80605758</link><guid>https://blog.youkuaiyun.com/ls703/article/details/80605758</guid><author>ls703</author><pubDate>Thu, 07 Jun 2018 11:59:00 +0800</pubDate><description><![CDATA[有时公司不让使用三方数据库框架，自己又不想一遍一遍的写增删改查。于是出于懒惰，就基于反射加注解，写了一个简单的数据库框架。一 、先来看看使用。1） 首相要对要进行增删改查的数据对象进行注解配置，如下以Book类为例：@Table(name=&quot;booktwo&quot;)
public class Book {
	
	@PrimaryKey
	@Column(name=&quot;b_id&quot;)
	public Stri...]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程六--Gradle多渠道打包]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49617105</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49617105</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:40:26 +0800</pubDate><description><![CDATA[由于国内Android市场众多渠道，为了统计每个渠道的下载及其它数据统计，就需要我们针对每个渠道单独打包，如果让你打几十个市场的包岂不烦死了，不过有了Gradle，这再也不是事了。

友盟多渠道打包

废话不多说，以友盟统计为例，在AndroidManifest.xml里面会有这么一段：

meta-data
    android:name="UMENG_CHANNEL"
    a]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程五--Gradle命令详解与导入第三方包]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49617049</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49617049</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:39:33 +0800</pubDate><description><![CDATA[Android Studio + Gradle的组合用起来非常方便，很多第三方开源项目也早都迁移到了Studio，为此今天就来介绍下查看、编译并导入第三方开源项目的方法。

Sublime + Terminal编译并查看源码

首先来给大家介绍一种简便并且个人最喜欢的一种办法。很多时候我们在GitHub上看到一个不错的开源项目，一般有两种需求，阅读源码和查看运行效果，如果是单纯的查看源码我]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程四--Gradle基础]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49617035</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49617035</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:36:44 +0800</pubDate><description><![CDATA[其实很早之前也写了一篇Gradle的基础博客，但是时间很久了，现在Gradle已经更新了很多，所以暂且结合Stduio 1.0正式版与最新的Gradle语法来详细讲解下，小伙伴们直接跟我一步步来学习吧。

什么是Gradle？

Gradle是一种依赖管理工具，基于Groovy语言，面向Java应用为主，它抛弃了基于XML的各种繁琐配置，取而代之的是一种基于Groovy的内部领域特定（DS]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程三--快捷键]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49617011</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49617011</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:35:29 +0800</pubDate><description><![CDATA[Android Studio 1.0正式版发布啦

今天是个大日子，Android Studio 1.0 终于发布了正式版， 这对于Android开发者来说简直是喜大普奔的大消息啊，那么就果断来下载使用。



官方下载地址： http://developer.android.com/sdk/index.html

如果你之前已经使用其他版本的Studio，那么直接覆盖就好了，如果]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程二--基本设置与运行]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49616977</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49616977</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:34:06 +0800</pubDate><description><![CDATA[上面一篇博客，介绍了Studio的优点与1.0 RC的安装与上手体验，没想到google的更新速度这么快，已经出了RC 2版本，主要是修复一些bug。那么今天就带大家预览下Stduio的界面与基本功能。

项目结构

当我们新建一个项目的目录结构默认是这样的



可以看到和Eclipse的目录结构有很大区别，Studio一个窗口只能有一个项目，而Eclipse则可以同时存在很多项]]></description><category></category></item><item><title><![CDATA[Android Studio系列教程一--下载与安装]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49616925</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49616925</guid><author>ls703</author><pubDate>Tue, 03 Nov 2015 15:33:10 +0800</pubDate><description><![CDATA[背景

相信大家对Android Studio已经不陌生了，Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具，目前很多开源项目都已经在采用，Google的更新速度也很快，明显能感觉到这是Android开发的未来，那么我们还有什么理由不去拥抱未来呢？

虽然推出了很久，但是国内貌似普及的程度并不高，鉴于很多朋友求studio的详细教程，]]></description><category></category></item><item><title><![CDATA[给ViewPager加上滑动条]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49127073</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49127073</guid><author>ls703</author><pubDate>Wed, 14 Oct 2015 16:41:24 +0800</pubDate><description><![CDATA[使用网易新闻的时候，如果左右滑动页面，会发现上面的Tab下面有条红条，可以随着下面页面的滑动而滑动，用来指明当前的页面。研究了一下，发现可以使用ViewPager和自定义View来实现类似的效果。

        在使用Viewpager的时候，我们一般都会注册一个OnPageChangeListener，来看一下它的代码：
   点击(此处)折叠或打开




/**

 ]]></description><category></category></item><item><title><![CDATA[使用canvas与Paint在View中居中绘制文字]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/49126967</link><guid>https://blog.youkuaiyun.com/ls703/article/details/49126967</guid><author>ls703</author><pubDate>Wed, 14 Oct 2015 16:37:52 +0800</pubDate><description><![CDATA[我们在自定义View中有的时候会想自己绘制文字，自己绘制文字的时候，我们通常希望把文字精确定位，文字居中（水平、垂直）是普遍的需求，所以这里就以文字居中为例，看一下android中的文字应该如何绘制，它与Java又有什么区别。

先来看看我们的目标，见下图



上图是我打开了“显示布局边界”后截的图，所有会有好多框框。

仔细观察上图文字区域，我们会发现文字区域中有5条颜色不同的]]></description><category></category></item><item><title><![CDATA[android应用开发--------------看RadioGroup源码，写类似单选选项卡的集成控件（如底部导航，tab等等）]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/46694967</link><guid>https://blog.youkuaiyun.com/ls703/article/details/46694967</guid><author>ls703</author><pubDate>Tue, 30 Jun 2015 15:14:26 +0800</pubDate><description><![CDATA[博客为 有时个哥 原创，如需转载请标明出处：

上面就是需求设计，4个类似的布局控件，每次只能选择一个，然后得到上面对应的钱数。（上面只是效果图，实际数据是从服务器获取，然后付到控件上）
看到这种，我们就回想到，几种实现方法。
1.把这个整体写一个布局，在xml布局中，复制粘贴，代码，凑够4个。非常不建议这样，因为4个的布局样式是一样的，只是数据可能不相同，所以我们应该写一个组合控件然后重]]></description><category></category></item><item><title><![CDATA[Android Network --------------关于Android自带的org.apache.http和apache官方的（第三方的）HttpClient的问题]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45915437</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45915437</guid><author>ls703</author><pubDate>Fri, 22 May 2015 12:19:17 +0800</pubDate><description><![CDATA[最近想理一下网络那块，突然发现了Android自带了Httplicent，可是我们平时开发也常用第三方的HttpClient（apache官方的）。由于以前看一些前辈这么用，自己也就跟着用了，但是根本就没考虑这些事。可是最近想整理一下，结果又看到了这个问题。我不知道你们会不会有和我一样的疑问呢？同时apache的东西，为什么Android自带一份，apache自己也有一份呢？并且边个类库是不一样的]]></description><category></category></item><item><title><![CDATA[Android Network -------------------判断网络状态（网络的连接，改变，和判断2G/3G/4G）]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45823485</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45823485</guid><author>ls703</author><pubDate>Mon, 18 May 2015 18:01:14 +0800</pubDate><description><![CDATA[现在app大多都需要从网络上获得数据。所以访问网络是在所难免。但是再访问网络之前，我们应该先做一下网络的状态判断。其实在访问网络之前我们要做一些状态判断，对应一些状态判断来做处理，并不是直接使用Http访问网络即可。很多人在开发就经常把网络这块直接跳过，直接访问网络，可以一断网，各种体验效果不好，不是说app没法用，只是体验效果差。还有，就是我们可能为用户考虑，因为现在一般连网是wifi和手机流量]]></description><category></category></item><item><title><![CDATA[android API Guides 之 web app --------------Building Web Apps in WebView（WebView与页面的绑定）]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45581923</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45581923</guid><author>ls703</author><pubDate>Fri, 08 May 2015 20:08:56 +0800</pubDate><description><![CDATA[如果你要在手机端实现一个web app或在app里加载一个web页面，那么你就要用到WebView控件。这WebView类是View类的扩展子类，它允许web页面作为应用布局的一部分来展示。它是不具备一个完整的浏览器的那些特性，例如WebView没有导航栏，地址栏等。WebView的默认功能就是去找事WebView。
当你在你的app里面加一些以后可能跟新的信息时（例如用户协议或用户指南），你是]]></description><category></category></item><item><title><![CDATA[Android应用开发-----------------接受照相机拍照广播和录像广播]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45581179</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45581179</guid><author>ls703</author><pubDate>Fri, 08 May 2015 16:02:01 +0800</pubDate><description><![CDATA[昨天，突然要求在照相和录像的时候要获得当时的时间，要获得准确时间一般就是在文件按快门按钮或按停止按钮生成文件的时候获得时间是比较准确的。
因为，如果在点击打开应用里拍照或录像按钮就获得时间，是必然是和真正拍照或录像时间有误差的。因为有加载摄像头时间，对焦时间，并且，用户进入拍照页面后，有可能不是立刻按快门进行拍照。所以在之前取时间是一定有误差的，比且不受控制。在一种就是在拍完照片或录完视频，点击]]></description><category></category></item><item><title><![CDATA[android API Guides 之 web app -------------Targeting Screens from Web Apps（屏幕适配）]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45509073</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45509073</guid><author>ls703</author><pubDate>Wed, 06 May 2015 23:49:05 +0800</pubDate><description><![CDATA[如果你在Android设备上设计开发一款web应用，你就应该考虑web页面在不停屏幕上的显示问题。因为Android有很多不同类型的手机屏幕，所以你应该去考虑一些影响web页面在Android设备上显示的因素。
注意：本文中描述的这些特性，已经在Android 2.0或更高的版本中的Android浏览器（Android系统默认的）和WebView（Android中用于显示网页的控件）上得到支持。]]></description><category></category></item><item><title><![CDATA[Android开发--------------WebView（二）之WebView的滑动底部顶部监听，加载进度条等设置]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45506117</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45506117</guid><author>ls703</author><pubDate>Tue, 05 May 2015 19:16:26 +0800</pubDate><description><![CDATA[整理一下WebView的一些常用设置，加载进度，滑动监听，获得标题等等
一，滑动监听
滑动监听的话是需要在WebView基础之上在加强一下，因为在WebView没有直接监听滑动的方法，看WebView的源码则会发现有一个
protected void onScrollChanged(int l, int t, int oldl, int oldt) ；
这个方法。是受到保护的所以我们无法直]]></description><category></category></item><item><title><![CDATA[Android应用开发-------------WebView（一）之WebView与服务器端的Js交互]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45504021</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45504021</guid><author>ls703</author><pubDate>Tue, 05 May 2015 18:21:07 +0800</pubDate><description><![CDATA[最近公司再添加功能的时候，有一部分功能是用的html，在一个浏览器或webview中展示出html即可。当然在这里我们当然用webview控件喽
 
WebApp的好处：
在应用里嵌套web的好处有这么几点，1，跨平台，不仅可以在Android上运行，也可以在ios上运行，而且样式什么的绝对统一，因为都是加载的html，用的都是同一套html
2，修改灵活，容易更新版本。例如大家常看到的a]]></description><category></category></item><item><title><![CDATA[Android开发（小属性）积累------------解决软键盘显示时listview的最后一条数据无法显示]]></title><link>https://blog.youkuaiyun.com/ls703/article/details/45250001</link><guid>https://blog.youkuaiyun.com/ls703/article/details/45250001</guid><author>ls703</author><pubDate>Fri, 24 Apr 2015 18:08:53 +0800</pubDate><description><![CDATA[只要给listview设置上android:transcriptMode="normal"这一句就好了]]></description><category></category></item></channel></rss>