自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宅男嗯 的博客

记录我的Android学习之路

  • 博客(43)
  • 收藏
  • 关注

原创 总结和目标

总结2017年的,计划2018年。一、总结 17年总的来说,算是平稳的一年。工作缓步向上,生活,还是单身狗一枚。想了想,还是有一些东西需要记下来。首先,17年初我给自己定下了几个目标: 1. 学习Android的几个知识,mvp,mvvm等设计模式,okhttp ,Retrofix,Glide等,主要学习代码的逻辑,设计模似,架构方面,写个小demo用上相应的知识点。 2. 学会An...

2018-03-20 22:46:45 364 1

原创 记录ios开发的一些问题

应公司需要,最近在学习iOS开发,boss安排我去发布2个新的版本。还是新手的我,在这几天被折腾的不要不要的,不过最终还是成功了。期间碰到了许多坑,都一一填上了。为了印象更深刻些,就把其中几个记下来。重要的事说三遍: iOS开发和发布是两套流程!两套 !套!1. 配置在苹果开发者账户中,打开Certificates, Indentifiers & Profiles能看到如下图样: 开发者可以在

2017-04-11 13:35:45 658

原创 百度地图集成骑行导航和驾车导航

记录最近学习的着个导航碰到的多个问题。 一、 appkey:这照着官网文档一般就能成功。如果失败了,多试几次,总会成功。二、 导航引擎初始化失败:这个问题有多重原因。libs文件夹下的文件错误:按照官方demo,将配套的所有jar文件和armeabi文件夹放入即可。按照现在(v4.2.1)的demo上的,只需要httpmime-4.1.2.jar,BaiduLBS_Android.jar和

2017-03-24 14:55:07 4042

原创 在一个app中打开另外一个app中的一个actiivty

最近碰到这个知识点,以前学的记不清了,记录下。 步骤如下: 1. 目标app中:允许另外进程启动此页面。 <activity android:name=".TestActivity" android:exported="true" />本app中:Intent intent = new Intent(); //intent.set

2017-03-17 16:40:13 653

原创 CardView

CardView是在安卓5.0提出的卡片式控件。 dependencies: compile 'com.android.support:cardview-v7:23.4.0'基本属性: app:cardBackgroundColor 设置背景颜色 app:cardCornerRadius 设置圆角大小 app:cardElevation 设置z轴的阴影 app:cardMaxE

2017-03-08 10:50:00 424

原创 解决小米手机用Android studio安装不了app的问题

这两天我的小米手机用Android studio直接run的情况下安装不了app。在之前没有出现这种情况。于是查找各种解决办法。1. INSTALL_FAILED_USER_RESTRICTED错误:升级MIUI8。我将系统升级到最新,然后在开发者选项中将几个调试相关的选项都打开:usb调试,USB安装等。还有安全管家的允许安装陌生应用等。这之后我能顺利用studio调试应用。2. 在上述方法成功后

2017-02-22 11:49:53 23649 8

原创 zxing打开扫码页面,黑屏问题

项目中遇到的问题:打开扫码页面时,黑屏。第一次打开扫码页面,可以正常显示。之后再打开此界面,黑屏,只有中间的扫面框在刷新。 解决过程: 1.一开始以为是SurfaceView使用不当,没有触发surfaceCreated()方法,没有启动相机。经过调试,各方法均触发成功,排除; 2.相机没初始化。这块不熟悉,各种查资料。发现camera都不为null,也调用了相应方法,但是就是第二次打开页面时

2016-11-09 00:11:13 7324

原创 常用git命令

mkdir learngit 创建(本地)仓库 cd learngit 进入仓库 pwd 显示仓库路径 git add readme.txt 添加文件到仓库 ,可以一次添加一个文件,也可以添加多个 git add file1.txt git add file2.txt file3.txt git commit -m “add 3 files.” 提交 git

2016-09-06 23:47:59 315

原创 View的显示(1)——从setContentView()开始

记录view是如何添加至界面显示出来。先记录几个相关类:1)Window:是一个抽象类,提供了绘制窗口的一组通用API。2)PhoneWindow:是Window的具体继承实现类。而且该类内部包含了一个DecorView对象,该DectorView对象是所有应用窗口(Activity界面)的根View。3)DecorView:是PhoneWindow的内部类,是FrameLayout的子类,是对Fr

2016-08-17 22:21:30 2154

原创 推送(2)

Registration Id不同的平台的叫法不一定相同,极光推送就叫Registration Id。应用程序第一次注册到推送平台时,推送平台会给应用生成一个唯一的该设备的标识 - RegistrationID。极光推送会以广播的形式发送给应用程序,只需要在BroadcastReceiver中获取到就行了。之后可以在APP中将这个 RegistrationID发送给自己的服务器,让我们自己的服务器将

2016-08-09 19:18:24 414

原创 关于推送的一些知识(1)

今天读了张铁蕾的文章,讲的推送的知识,有些收获,记录下来。Android推送可以分成两类:端内推送和端外推送(端指的客户端)。端内推送:APP在前台运行时,这时候的推送是端内推送。· 端内推送一般是走App自己实现的一套推送系统:推送服务器是自己的,客户端维护一条长连接连到自己的推送服务器,不依赖任何第三方的推送系统。· 当App从前台退到后台,在短时间内App未被系统杀死前,App自己的长连接仍然

2016-08-08 23:37:18 9248

原创 Java算法——冒泡排序&&快速排序

冒泡排序 从左到右比较,一次比较左右相邻2个元素,如果左边的大,则左右交换位置,循环比较所有元素,排出顺序。 int [] mlist={3,2,4,6,9,7,1,8,0}; public static void list(int[] list) { int temp=0; int size=list.length; for(int i

2016-08-08 11:49:11 302

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

希望目标类在称程序运行过程中,只有一个实例,无论在哪里用到它,都只是复用同一个实例,而不是创建新的实例,就要用到所谓的单例模式。 单例模式的创建方法有好几种,各有优点,需要灵活使用,才能写出更高效的程序。饿汉式 直接看代码:public class Singleton { private static Singleton singleton=new Singleton(); pr

2016-08-06 17:29:08 221

原创 Intent

Intent意图 在Android中提供了Intent机制来协助应用间的交互与通讯。是在相同或者不同组件之间通信的“媒介”,专门提供组件互相调用的相关信息。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的

2016-07-26 23:35:26 257

原创 面试的记录

面试过后才能知道自己哪方面需要补充。 2016.7.22 1.fragment的生命周期 答的稀烂。抽自己一巴掌。 onAttach :fragment和activity 关联 onCreate: fragment对象创建 onCreateView:fragment对象的View的创建 onActivityCreated:activity的onCreate完成 onStart: fr

2016-07-23 00:26:08 438 1

原创 android屏幕适配

设备机型不同导致屏幕大小和分辨率(Resolution)不同(碎片化),但是无论分辨率有多大,屏幕有多大,我们手指触控范围的百分比应该一样,适配一般就是要达到目标控件在所有机器里面屏占比一样大(当然,我认为这不是绝对的,怎么样合适怎么适配)。一、几个名词 dpi:dots per inch,每英寸像素点,在android中叫屏幕密度。ppi:pixels per inch,iPad、iPhone表

2016-07-22 00:38:20 1441

原创 关于okhttp和volley

尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。 OkHttp是一款优秀的HTTP框架,它支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题。eg在百度APIstore里面的一个查询新闻的

2016-07-20 21:03:58 551

原创 android性能优化

问题: ——UI性能 ——资源消耗 ——存储性能 ——代码逻辑一、UI卡顿 原因——Android的UI流畅绘制的帧率规定为60fps,即16ms/帧; 结论——尽量保证每次在16ms内处理完所有的CPU与GPU计算、绘制、渲染等操作,否则会造成丢帧卡顿问题。还有一个原因是:虚拟机在执行GC垃圾回收操作时所有线程(包括UI线程)都需要暂停,当GC垃圾回收完成之后所有线程才能够继续执行。若

2016-07-20 14:50:02 222

原创 关于android内存管理

1.有一个问题:android属于嵌入式实时操作系统吗? 属于。嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并迅速处理,其处理结果能在规定事件内控制生产过程或对处理系统做出响应,并控制所有实时任务协调一致运行的嵌入式操作系统。android系统基于Linux,属于软实时操作系统。2.关于android内存 android系统主要运作在嵌入式设备,内存相对较小。Android系统会为每个

2016-07-20 14:16:19 265

原创 关于touch事件分发

Touch事件分发中有两个主角:ViewGroup和View。activity是一个总的ViewGroup,在里面包含若干ViewGroup和View。ViewGroup里面有可能有若干ViewGroup和View。这就构成了一个树状的关系。ViewGroup的相关事件有三个:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent。负责拦截,分发,

2016-07-20 11:36:28 232

原创 关于fragment

前面已经写过一些内容了,再总结下:1.fragment生命周期onAttach(Activity):fragment与activity关联时调用。现已过时,最新方法是onAttach(Context); onCreate(Bundle ):fragment对象初始创建时调用; onCreateView(LayoutInflater, ViewGroup,Bundle):创建和fragment

2016-07-20 00:17:21 245

原创 Thread 关于线程

总的来说,android有主线程和子线程之分,主线程中只能做一些耗时极短的事(不超过5S,超过5S,触发ANR),比如加载视图,和用户交互等;子线程用于处理耗时任务,比如下载文件,网络请求等。android系统会在APP启动的时候创建主线程,不会主动创建额外的线程。在开发中有2条规则要遵守: ——不能在 主线程 当中进行耗时的操作,不能阻塞我们的UI Thread; ——不能在 主线程 之外的线

2016-07-19 23:05:07 236

原创 android的动画

1.Android中的动画种类,它们的特点和区别是什么? 根据官方文档,android提供三种动画效果。 1)frame-by-frame animation逐帧动画 一张张图片排列,顺序播放。 习惯上把AnimationDrawable设置为ImageView的背景android:background=@anim/frame_anim然后在java代码中获取AnimationDrawabl

2016-07-19 17:01:06 228

原创 关于handler

1.创建handler 在主线程中可以直接创建Handler对象,而在子线程中需要先调用Looper.prepare()才能创建Handler对象2.handler实现机制 1)message对象,表示要传递的消息,内部用链表数据结构实现一个消息池,用于重复利用; 2)MessageQueue,用于存放消息队列,先进先出原则; 3)Looper,用于从消息队列取出消息; 4)handler

2016-07-19 15:34:25 295

原创 Service服务相关(2)

一些要点: 1.描述服务的生命周期。 分为2中: 1)startService方式:启动服务,onCreate,onStartCommand,这时再次启动,只会调用onStartCommand,之后调用stopService(intent);停止服务,会调用onStart,onDestroy;2)bindService方式:启动服务,onCreate,onBind,之后再启动,不会回调;停止服

2016-07-19 13:51:20 239

原创 Service服务相关(1)

Service,服务,是android四大组件之一。使用场景: 1.一般用于执行长时间的事务。 2.可以在用户不可见的状态下处理事务。使用: 1)通过 startService(intentS)方式启动服务:package wy.bzt.com.phonehelper.service;import android.app.Service;import android.content.Inte

2016-07-19 11:35:10 312

原创 Broadcast广播

广播是android中各个组件之间的一种通讯方式,一般的使用场景是: 1)APP内,单个组件相同或不同线程之间通信; 2)APP内,不同组件之间的通信(单个进程); 3)不同APP之间的通信; 4)APP和系统时间的通信; 除了第一个不常用之外,其他3个都比较适用,第二个有EventBus,一种更好的处理方式。从实现原理看上,Android中的广播使用了观察者模式,基于消息的发布/订阅事件

2016-07-18 22:32:26 316

原创 Activity

一、activity的定义 activity是应用程序的一个组件,他提供一个屏幕用于应用程序和用户之间的交互。二、activity的生命周期 onCreate()——当活动首次创建时调用,一般在这进行初始化工作,初始化数据,视图等; onStart()——当活动对用户可见时调用,可见但是不可以交互; onResume()——活动对用户完全可见并且可以交互; onPause()——当前活动被

2016-07-18 21:26:37 6371

原创 android 系统框架

从里到外是:Linux内核层,系统运行库层,应用程序框架层,应用程序层。2.系统运行库层:这层包括了 库——包括了提供android操作系统的主要功能的全部代码。例如,SQLite库提供了支持应用程序进行数据存储的数据库。WebKit库为浏览Web提供了众多功能。 android运行时——提供一组核心库,可以使开发人员使用Java语言写android程序。还包括d

2016-07-18 17:08:23 522

原创 知识点总结

干android也正式有一年了,准备换个工作环境。总结下各个知识点,准备面试。 纯靠脑袋想,需要总结的知识点: 先是4大组件: android的分层,activity的生命周期,activity的启动方法,activity的启动模式,activity之间的信息传递,activity本身的一些属性设置比如:无标题,窗口化等等; BroadcastReceiver广播接收者,他的创建,使用;

2016-07-18 15:42:25 248

原创 ViewFlipper实现竖向广播轮转效果

ViewFlipper继承自ViewAnimator,再上层是FrameLayout,OK,把它当成FrameLayout容器使用。直接看例子: layout:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm

2016-07-13 17:03:00 289

原创 RelativeLayout

1.属性值为具体像素值的属性:20dp android:layout_marginBottom 离某元素底边缘的距离 android:layout_marginLeft 离某元素左边缘的距离 android:layout_marginStart 同上 android:layout_marginRight 离某元素右边缘的距离 android:layout_marginEnd 同上 and

2016-06-14 18:13:27 202

原创 Activity的启动模式

Android采用Task来管理Activity,一个Task可以管理多个activity。当我们启动一个Activity时,系统就会创建一个Task。 Android并未给Task提供API,只能通过调用Activity的getTaskId()方法获取它所在的Task的ID,我们可以把Task理解为Activity 栈,Task以栈来管理Activity。 activity的启动模式(laun

2016-06-12 22:40:41 231

原创 Android 沉浸式状态栏

这是一种在android4.4及以上版本中使用的,很漂亮的状态栏效果,很流行。效果图: 今天先记录下他的简单实现方法。 首先,在color文件中添加:<color name="colorPrimary">#05aaf4</color><color name="colorPrimaryDark">#0283c9</color><color name="colorAccent">#FF4081<

2016-06-08 00:02:31 294

原创 Android 百分比支持库 android-percent-support

在gradle中添加依赖: compile 'com.android.support:percent:23.4.0'这个库有2中布局:PercentRelativeLayout、PercentFrameLayout,提供相应的百分比布局设置。可以设置宽、高以及margin。他们可以在开发中替换:RelativeLayout和FrameLayout。 其中可以使用的属性有: layout_widt

2016-06-07 21:53:02 896

原创 Android 图片压缩

最近重新学习图片压缩,网上各种找资料,对比,总结,感觉有些理解了,总结一下。 在android中,图片的加载一般是把图片转化为Bitmap,设置到ImageView中显示出来。这里有个问题需要特别注意,也是我写下这篇记录的原因所在:当图片以Bitmap形式存在时,它占用的内存大小的计算方式: **memory=图片宽度(px)* 图片高度(px)* 单位像素占用字节数。**

2016-06-06 20:52:31 256

原创 Android 自定义View(2)

自定义View中的三要素:大小,位置,画什么。指向的就是三个可以重写的方法:onMesure(),onLayout(),onDraw()。 一、onMesure() 这个方法会被View中的measure方法调用,并且传入经过父视图V计算得到的widthMeasureSpec和heightMeasureSpec,即控件的宽和高。这2个参数也将确定控件宽高的规格specMode。调用Measur

2016-04-28 23:56:53 348

原创 Android 自定义View(1)

android自定义View的实现方式有3种,组合控件,继承android控件和继承View。 一、组合控件 这种方式较为简单,基本实现过程是: 1.自定义类继承Linearlayout等; 2.在布局文件中使用系统控件任意组合成预定样式,在构造方法中调用inflate()方法绑定布局文件;或者直接在代码中创建(new)出各种需要的控件; 3.在需要的地方像使用系统控件一样使用它。 注意

2016-04-26 00:09:24 389

原创 Fragment(2)

一、先记录一个问题:Fragment和Activity之间的通信。 (1)在Activity中操作Fragment 在activity中取得fragment的实例,通过这个实例进行通信,比如调用fragment中的方法等; (2)在Fragment中操作Activity 通过getActivity()得到Activity的实例,进行操作。其中,必须记住的是接口回调的使用。 例:

2016-04-24 16:50:39 332

原创 Fragment (1)

一、Fragment基础知识 1.什么是Fragment? fragment,官网上这么说:A Fragment is a piece of an application’s user interface or behavior that can be placed in an Activity. 2.为什么用Fragment?

2016-04-20 16:07:32 273

空空如也

空空如也

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

TA关注的人

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