<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[awsaawsy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/awsaawsy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; awsaawsy]]></copyright><item><title><![CDATA[NDK开发之编译原理与语法]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/103225096</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/103225096</guid><author>awsaawsy</author><pubDate>Fri, 29 Nov 2019 18:14:43 +0800</pubDate><description><![CDATA[1.编译流程

编译就是将高级语言的代码转化成可执行的二进制目标代码。主要包含四个步骤：预处理、编译、汇编、链接。

预处理：就是对各种预处理命令的处理，主要是宏替换、文件引入、去除空行和注释等。linux系统中预处理命令：gcc -E test.c -o test.i。-E表示gcc在预处理后停止编译、汇编和链接操作。

编译：将预处理后的代码翻译成汇编语言。会先分析后综合，分析就是进行词法、语...]]></description><category></category></item><item><title><![CDATA[NDK开发之C语言基础]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/103100410</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/103100410</guid><author>awsaawsy</author><pubDate>Fri, 22 Nov 2019 17:49:48 +0800</pubDate><description><![CDATA[1.NDK开发为什么使用Visual Studio

vs方便在电脑中调试，实时看到代码的执行效果，而且和Android studio的环境非常相似，便于移植。一般在visual studio中调试好代码，再导入到Android studio中执行。

2.使用vs怎么创建项目

vs只要是Windows的都可以开发，包括移动和WEB 都可以开发。开发NDK使用社区版，对开发者免费。配置NDK开发...]]></description><category></category></item><item><title><![CDATA[数据结构之栈、队列]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/99698946</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/99698946</guid><author>awsaawsy</author><pubDate>Fri, 30 Aug 2019 22:00:38 +0800</pubDate><description><![CDATA[栈

1、是什么

栈是一种操作受限的线性表，只允许在一端删除和添加数据。

2、为什么

特定的数据结构是对特定使用场景的抽象，数组和链表暴露的接口太多，操作灵活自由，但是使用起来不可控，容易出错。

3、怎么实现

栈可以数组和链表实现。数组实现叫做顺序栈，链表实现叫做链式 栈。存储数据只需要大小为n的数组就够了，出栈和入栈过程中，只需要一两个临时变量存储空间，空间复杂度是O(1)。出栈和入栈...]]></description><category></category></item><item><title><![CDATA[数据结构和算法系列之数组]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/99660468</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/99660468</guid><author>awsaawsy</author><pubDate>Sat, 17 Aug 2019 22:28:23 +0800</pubDate><description><![CDATA[数组

一、是什么

数组是一种线性表数据结构，用一组连续的内存空间，存储一组具有相同类型的数据。

二、自身特点

支持随机访问，根据下标随机访问的时间复杂度是O(1)。插入和删除的最好情况时间复杂度是O(1)，最坏情况的时间复杂度是O(n),平均时间复杂度是O(n).

三、适合解决的问题

针对数组类，很多语言提供容器类。Java中的ArrayList.它将很多数组操作的细节封装起来，支持动...]]></description><category></category></item><item><title><![CDATA[数据结构和算法基础]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/99461531</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/99461531</guid><author>awsaawsy</author><pubDate>Wed, 14 Aug 2019 23:01:25 +0800</pubDate><description><![CDATA[前言

最近在学习王争老师的数据结构和算法之美课程，课程的很多知识之前并未了解。在此做简单记录。

一、是什么

广义上，数据结构是一组数据的存储结构，算法是操作这组数据的方法。狭义上，是指某些著名的数据结构和算法，比如堆、栈、队列、二分查找等。

数据结构和算法是相辅相成的。数据结构是为算法服务的，算法要作用在特定的数据结构上。eg:二分查找需要用数组来存储数据，链表这种数据结构，二分查找就不起...]]></description><category></category></item><item><title><![CDATA[android 以iPhone6为基准做的设计图px转dp]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/79485280</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/79485280</guid><author>awsaawsy</author><pubDate>Thu, 08 Mar 2018 15:53:02 +0800</pubDate><description><![CDATA[public static void getdpfrompx(){

        float density = 326/160;//326为iphone6的ppi
  
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(&quot;&amp;lt;?xml version=\&quot;1.0\...]]></description><category></category></item><item><title><![CDATA[H264视频编码的基本了解]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/79158030</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/79158030</guid><author>awsaawsy</author><pubDate>Thu, 25 Jan 2018 09:50:42 +0800</pubDate><description><![CDATA[参考：https://www.axis.com/files/whitepaper/wp_h264_34203_cn_0901_lo.pdf
因为视频是有图片不断切换产生的，现在一张图片都有几兆，这样一次传输一张完整图片的成本太大，会产生大量的流量。因此会出现压缩编码的需求。H264是其中的一种编码方式，也被称为MPEG-4 part10或者ACV（高级视频编码），是当今市场最高效的视频压缩技术。]]></description><category></category></item><item><title><![CDATA[《软件架构设计》 文摘]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/78748095</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/78748095</guid><author>awsaawsy</author><pubDate>Fri, 08 Dec 2017 17:24:53 +0800</pubDate><description><![CDATA[1.软件行业人才结构
  学历结构是橄榄型，能力结构是金字塔型。《华为研发》中写道，机会、人才、技术、产品是公司成长的主要牵动力。机会牵引人才、人才牵引技术、技术牵引产品、产品牵引更大机会。在这四牵动力中，人才所掌握的知识处于最核心的地位。软件企业应该定期分析和掌握本公司的员工能力状况、人才结构状况；员工专项技能的渐进提升（架构技能、设计重构技能）；研发骨干整体机能的跨越转型（高级工程师向架构师]]></description><category></category></item><item><title><![CDATA[Java、Android基础知识填坑]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/78747800</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/78747800</guid><author>awsaawsy</author><pubDate>Fri, 08 Dec 2017 08:50:46 +0800</pubDate><description><![CDATA[1.switch和if各自的优缺点
switch:优点结构整齐，一目了然，缺点只能判断等值条件判断，且大多用于字符和数值型固定值判断。
if:优点:可以判断范围，只要可以用switch的地方都可以用if，缺点就是结构繁琐，可读性差。
总结：字符和数值型固定值做判断用switch，其他用if。]]></description><category></category></item><item><title><![CDATA[android 中序列化对象]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/77978350</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/77978350</guid><author>awsaawsy</author><pubDate>Thu, 14 Sep 2017 11:27:06 +0800</pubDate><description><![CDATA[Android中实现序列化有两种方式1.实现Serializable接口，2.实现Parcelable接口。其中一是Java的序列化接口，二是Android自带的序列化接口。
    方式一实现序列化代码很简单，需要序列化的类只要实现接口。但是作为Intent和Bundle的参数的时候，还是Parcelable更方便。而且在序列化的过程中会产生大量临时变量。在页面间传递对象时推荐方式二。]]></description><category></category></item><item><title><![CDATA[将eclipse 项目导入到Android studio 遇到的几个问题]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/77480293</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/77480293</guid><author>awsaawsy</author><pubDate>Tue, 22 Aug 2017 14:59:52 +0800</pubDate><description><![CDATA[Q1：不能直接复制项目，然后导入Android  studio，而应该右键选择export，在导出项目的时候 选择Generate Gradle build files.
Q2：failed to find target with hash string android-23，eclipse和as用的sdk不同造成，修改版本号。
Q3：Error:Execution failed for ta]]></description><category></category></item><item><title><![CDATA[Eclipse内存分析工具MAT的安装与使用]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/75314951</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/75314951</guid><author>awsaawsy</author><pubDate>Tue, 18 Jul 2017 17:48:35 +0800</pubDate><description><![CDATA[安装
安装步骤：Eclipse - >help - > Install New Software - >add，Location为http://archive.eclipse.org/mat/1.3/update-site/，安装完毕后重启Eclipse。window - > open perspective，看到Memory Analysis证明安装成功。

使用
DDMS收集Andro]]></description><category></category></item><item><title><![CDATA[android 中遇到的异常汇总]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/73740472</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/73740472</guid><author>awsaawsy</author><pubDate>Mon, 26 Jun 2017 15:24:16 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/jason0539/article/details/11699647
原因：
一般发生在参数 int resId 错误，你把String赋值给int的resId，所以编译器找不到正确的resource于是报错。
解决方法：
方案一：

count.setText(String.valueOf(incall.getCount())); 
方案二]]></description><category></category></item><item><title><![CDATA[android string.xml的字符串中插入变量]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/73564981</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/73564981</guid><author>awsaawsy</author><pubDate>Thu, 22 Jun 2017 10:49:27 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/fengzhblog/archive/2013/07/14/3188871.html
1.在string.xml文件中定义字符串及要插入的数据类型
ok%1$d
2.在class文件中引用该字符串：String txtSelectOk = getResources().getString(R.string.ok);
txtSelectOk = S]]></description><category></category></item><item><title><![CDATA[App保存密码相关知识]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/73321672</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/73321672</guid><author>awsaawsy</author><pubDate>Fri, 16 Jun 2017 09:54:17 +0800</pubDate><description><![CDATA[文件来源：http://blog.youkuaiyun.com/hengyunabc/article/details/34623957
先看下一些软件是如何保存用户密码的：

我们先来看下QQ是怎么保存密码的：
参考：http://bbs.pediy.com/archive/index.PHP?t-159045.html，
桌面QQ在2012的时候把密码md5计算之后，保存到本地加密的Sqlite数]]></description><category></category></item><item><title><![CDATA[android 自定义TextView，设置DrawableLeft图片的大小]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/73193076</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/73193076</guid><author>awsaawsy</author><pubDate>Tue, 13 Jun 2017 19:30:43 +0800</pubDate><description><![CDATA[文章来源：http://blog.youkuaiyun.com/u014702653/article/details/52304656#reply

需求：text的四周可以设置辅助图标，并且可以设置图标的大小！还要可以设置图片和文字的间距
              1.自定义View的属性
  既然无法获取到是哪一个方向上的drawable，那就自己定义一个方向的属性，并且自己定一个drawabl]]></description><category></category></item><item><title><![CDATA[Android强制用户重新登录处理]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/72597722</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/72597722</guid><author>awsaawsy</author><pubDate>Sun, 21 May 2017 12:19:21 +0800</pubDate><description><![CDATA[适用情况：账号或者密码失效，需要重新登录。采用发送广播的方式提醒用户，并跳转到登录界面。
发送广播：
 Intent intent=new  Intent("OffLine");  
 sendBroadcast(intent);  



方式一：
1.创建activity基类BaseActivity,在onResume()的方法中，添加广播的过滤器。
 IntentFilter]]></description><category></category></item><item><title><![CDATA[git使用简介]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/70156002</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/70156002</guid><author>awsaawsy</author><pubDate>Thu, 13 Apr 2017 11:05:58 +0800</pubDate><description><![CDATA[文件来源：http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


集中式vs分布式

Git是分布式版本控制系统，CVS及SVN都是集中式的版本控制系统。集中式版本控制系统，版本库是集中存放在中央服务器的，而干活的时候，用的都是自己的电脑，所以要先从中央服务器取得最新的版本，]]></description><category></category></item><item><title><![CDATA[使用命令行创建Android项目]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/69089522</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/69089522</guid><author>awsaawsy</author><pubDate>Tue, 04 Apr 2017 17:02:52 +0800</pubDate><description><![CDATA[文章来源：http://hukai.me/android-training-course-in-chinese/basics/firstapp/creating-project.html


一、创建Android 应用

1. 打开命令行切换到SDK根目录下；
2. 打印出我们所有的Android SDK中下载好的可用Android platforms，找想要创建项目的目标platf]]></description><category></category></item><item><title><![CDATA[Android 使用DialogFragment创建对话框]]></title><link>https://blog.youkuaiyun.com/awsaawsy/article/details/55253287</link><guid>https://blog.youkuaiyun.com/awsaawsy/article/details/55253287</guid><author>awsaawsy</author><pubDate>Thu, 16 Feb 2017 11:12:12 +0800</pubDate><description><![CDATA[文章来源：http://blog.youkuaiyun.com/lmj623565791/article/details/37815413


概述
    DialogFragment在3.0中被引入，用来在activity中弹出一个对话框。在此之前用的是Dialog和AlertDialog。使用DialogFragment来管理对话框，当旋转屏幕和按下后退键时可以更好的管理其生命周期，其和Frag]]></description><category></category></item></channel></rss>