<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ssjj_programmer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ssjj_programmer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ssjj_programmer]]></copyright><item><title><![CDATA[Linux 命令行]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/54312312</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/54312312</guid><author>ssjj_programmer</author><pubDate>Tue, 10 Jan 2017 11:41:11 +0800</pubDate><description><![CDATA[1.ls:列出当前目录的所有文件夹和文件。
2.pwd:输出当前文件或文件夹的绝对路径。（print working directory）
3.cd:进入文件夹。（change directory）
4.cd ..:返回上一级文件夹。
5.mkdir：创建文件夹。（make directory）
6.touch:创建文件。
7.ls -a:显示包括隐藏文件在内的所有文件。
注： -a]]></description><category></category></item><item><title><![CDATA[Sass语法基础]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/54136779</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/54136779</guid><author>ssjj_programmer</author><pubDate>Fri, 06 Jan 2017 12:21:09 +0800</pubDate><description><![CDATA[一.sass文件不能被浏览器直接识别，需要编异成css文件，在命令行输入指令：
sass main.scss main.css
该指令将main.scss文件编译到main.css文件中。
二.嵌套selector，在sass语法中，可以在一个selector中嵌套定义另一个selector，如：
.parent {
  color: blue;
  .child {
    font-s]]></description><category></category></item><item><title><![CDATA[AngularJS基础]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53821491</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53821491</guid><author>ssjj_programmer</author><pubDate>Thu, 22 Dec 2016 22:10:31 +0800</pubDate><description><![CDATA[一.自定义指令，调用directive（）方法，如：
app.directive('appInfo',function(){
  return{
    restrict:'E',
    scope:{
      info:'='
    },
  	templateUrl:
    'js/directives/appInfo.html'
  };
});
创建了一个名为‘appInfo]]></description><category></category></item><item><title><![CDATA[AngularJS基础]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53792549</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53792549</guid><author>ssjj_programmer</author><pubDate>Wed, 21 Dec 2016 22:43:16 +0800</pubDate><description><![CDATA[一.创建第一个应用程序

首先，链接到Angular库，在HTML文档的标签中定义标签，并给src属性赋值为
库文件路径。如：


1.创建一个模块（module），如：
var app = angular.module("myApp",[]);
2.使用ng-app指令来定义app的作用域，如：

表示该module可以作用自整个标签中；
3.创建一个控制器（controll]]></description><category></category></item><item><title><![CDATA[管理Bitmap的存储空间]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53792453</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53792453</guid><author>ssjj_programmer</author><pubDate>Wed, 21 Dec 2016 22:37:26 +0800</pubDate><description><![CDATA[注：1.在Android2.2（API level 8）之前，当垃圾回收线程工作时，主线程会阻塞，这就造成了不好的用户体验，
所以在以后的版本中，出现了并发执行的垃圾回收线程，这意味着当一个Bitmap没有被引用时，就会被回收；
2.在Android2.3.3（API level 10）之前，Bitmap的像素数据是存储在本地内存中，且与Bitmap本身是分开存储的，
（Bitmap存储在D]]></description><category></category></item><item><title><![CDATA[JavaScript$jQuery]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53771247</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53771247</guid><author>ssjj_programmer</author><pubDate>Tue, 20 Dec 2016 23:08:51 +0800</pubDate><description><![CDATA[一.获取焦点监听：focus（）;通常鼠标按下或停留时该标签会获得焦点。
二.监听键盘按下：keydown();只对有焦点的标签有影响。
三.animation（）函数产生动画效果，接收两个参数，第一个是进行的动画，第二个是时间，如：
 $('div').animate({left:'+=10px'},500);
表示在0.5秒内将该标签向右移动10个像素单位。
四.jQuery UI函]]></description><category></category></item><item><title><![CDATA[JavaScript&&jQuery]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53750143</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53750143</guid><author>ssjj_programmer</author><pubDate>Mon, 19 Dec 2016 22:47:27 +0800</pubDate><description><![CDATA[一.给JQuery Selector赋值的变量名通常以‘$’符号开头，如：
var $p = $('p');
二.Compound Selector 
可以一次选择多个文档对象模型来构造jQuery对象，如：
$('p, li').fadeTo('slow', 0);
选择了所有的标签和标签。
三.slideToggle()函数，滑动展开和收起动画效果，接受一个字符串表示的速度参数，如]]></description><category></category></item><item><title><![CDATA[JavaScript&jQuery]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53712263</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53712263</guid><author>ssjj_programmer</author><pubDate>Sat, 17 Dec 2016 20:27:38 +0800</pubDate><description><![CDATA[一.通过设置标签的src属性值，我们可以链接一个.js(JavaScript)文件到HTML文档，如：

二.与DOM（文档对象模型）交互
可以通过HTML文档标签的class属性值找到这个标签，(调用getElementsByClassName方法)如：
var header = document.getElementsByClassName('example-class-name');]]></description><category></category></item><item><title><![CDATA[JavaScript基础]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53712148</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53712148</guid><author>ssjj_programmer</author><pubDate>Sat, 17 Dec 2016 20:26:47 +0800</pubDate><description><![CDATA[一.定义数组，如：
var bucketList = ['Rappel into a cave', 'Take a falconry class', 'Learn to juggle'];二.在数组末尾添加元素，调用push（）方法，如：
var bucketList = ['item 0', 'item 1', 'item 2'];
bucketList.push('item 3', 'it]]></description><category></category></item><item><title><![CDATA[缓存图片资源]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53677489</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53677489</guid><author>ssjj_programmer</author><pubDate>Thu, 15 Dec 2016 21:54:16 +0800</pubDate><description><![CDATA[一、使用内存缓存，通过使用LruCache类，需要确定缓存的大小，如使用app运行内存的1/8：
private LruCache mMemoryCache;

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    // Get max available VM memory, exceeding t]]></description><category></category></item><item><title><![CDATA[高效展示图片，防止OOM]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648582</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648582</guid><author>ssjj_programmer</author><pubDate>Wed, 14 Dec 2016 22:31:38 +0800</pubDate><description><![CDATA[一.加载高分辨率图片：
BitmapFactory类提供各种解码方法来构造Bitmap,如decodeByteArray(), decodeFile(), decodeResource()等，这些方法在解码
时会给构造的Bitmap对象分配内存，因而很容易造成OOM异常，但同时也提供了通过BitmapFactory.Options类来指定解码选项的功能，
设置 inJustDecodeBou]]></description><category></category></item><item><title><![CDATA[使用Android系统打印功能]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648321</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648321</guid><author>ssjj_programmer</author><pubDate>Wed, 14 Dec 2016 22:24:08 +0800</pubDate><description><![CDATA[一、打印图片
使用PrintHelper类，如：
private void doPhotoPrint() {
    PrintHelper photoPrinter = new PrintHelper(getActivity());
    photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);
    Bitmap bitmap = B]]></description><category></category></item><item><title><![CDATA[JavaScript基础]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648255</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53648255</guid><author>ssjj_programmer</author><pubDate>Wed, 14 Dec 2016 22:17:45 +0800</pubDate><description><![CDATA[一.三大基础数据类型：
（1）String：被单引号或双引号包含的数字或单词；
（2）Number：数字；
（3）Boolean:布尔值。
二.让控制台打印信息，如：

console.log('Your message here.');三.JavaScript支持常见的数学运算操作，如加，减，乘，除，取余。
四.返回一个随机值

Math.random();该函数返回一个0-1]]></description><category></category></item><item><title><![CDATA[控制设备的照相机（camera）]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53615733</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53615733</guid><author>ssjj_programmer</author><pubDate>Tue, 13 Dec 2016 22:33:43 +0800</pubDate><description><![CDATA[一、添加权限：
使用摄像头：

注：如果通过意图开启设备上已有的照相app，则不需要该权限。

设备需拥有摄像头：
存储图像或录像到SD卡：

摄像是需要录音：




二、用Intent使用已有的照相机app：
拍照：Action：MediaStore.ACTION_IMAGE_CAPTURE ；
      Extra：MediaStore.EXTRA_OUTPUT：]]></description><category></category></item><item><title><![CDATA[多媒体播放器配置（使用MediaPlayer）]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53615374</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53615374</guid><author>ssjj_programmer</author><pubDate>Tue, 13 Dec 2016 22:23:10 +0800</pubDate><description><![CDATA[一、权限声明
如果播放的音频流来自网络，需声明权限：

如果想让播放期间屏幕不息屏，可以调用MediaPlayer.setScreenOnWhilePlaying() 或
MediaPlayer.setWakeMode()方法，需要权限：



二、MediaPlayer支持多种媒体来源，如：app本地资源（row文件夹下）；内部URI，外部URL。
如播放本地row文件夹下的音频]]></description><category></category></item><item><title><![CDATA[Android音频播放配置]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53590521</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53590521</guid><author>ssjj_programmer</author><pubDate>Mon, 12 Dec 2016 22:57:33 +0800</pubDate><description><![CDATA[Android系统封装了许多音频流类型，如多媒体，铃声，闹钟等，一般来说音频播放app使用的是STREAM_MUSIC流。


一、使用音量键控制app的播放音量：
setVolumeControlStream(AudioManager.STREAM_MUSIC);
二、使用耳机的实体按键控制app音频的播放（play，pause，stop，skip，previous）：
当用户按下其]]></description><category></category></item><item><title><![CDATA[HTML&CSS]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53590462</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53590462</guid><author>ssjj_programmer</author><pubDate>Mon, 12 Dec 2016 22:52:06 +0800</pubDate><description><![CDATA[一、另一个有用的伪类（pseudo-class）是first-child,它通常用来对标签下第一个子节点
进行格式操作，如：
p:first-child {
    color: red;
}使得所有作为其他标签的第一个子节点的标签颜色为红色。


二、可以使用nth-child伪类指定一个标签下的任意一个子节点，只需在后面添加一个括号，括号中
标明你想操作的子节点数，如：
p:nt]]></description><category></category></item><item><title><![CDATA[HTML&CSS]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576224</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576224</guid><author>ssjj_programmer</author><pubDate>Sun, 11 Dec 2016 22:25:16 +0800</pubDate><description><![CDATA[一、所有的HTML标签都是selector；
二、多重selector，如：
div div p {
    /*CSS stuff!*/
}


编辑的是嵌套在两层标签中的标签，如：

    
        I like tacos!
    


三、一个可以代表所有selector的符号："*"，如：

*{
border:2px solid;
}


该语句表]]></description><category></category></item><item><title><![CDATA[使用Android Beam进行近场通信（NFC）]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576156</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576156</guid><author>ssjj_programmer</author><pubDate>Sun, 11 Dec 2016 22:18:00 +0800</pubDate><description><![CDATA[要使用Android Beam特性需满足以下要求：
1.对于大文件的传输只能运行在Android4.1（API Level 16）或以上的系统上；
2.要传输的文件必须是位于外部存储空间（external storage）中，且对外具有可读性；
3.必须为要传输的文件提供一个file URI，由FileProvider.getUriForFile()方法生成的URI无效。

一、发送文件]]></description><category></category></item><item><title><![CDATA[文件分享（使用Content URI）深入]]></title><link>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576096</link><guid>https://blog.youkuaiyun.com/ssjj_programmer/article/details/53576096</guid><author>ssjj_programmer</author><pubDate>Sun, 11 Dec 2016 22:12:27 +0800</pubDate><description><![CDATA[上次笔记讲述了设计一个文件分享app的基本思路，今天从源码的角度具体解析被选中文件URI是如何生成的。
要生成文件URI，需调用getUriForFile()方法，如：
fileUri = FileProvider.getUriForFile(FileSelectActivity.this, "com.example.ludou.sharefile", requestFile);
第一个参数为]]></description><category></category></item></channel></rss>