android小咖秀
文章平均质量分 86
android相关精品好文干货分享,一起学习交流!共同进步!
peihp_
熟悉多方语言,Linux C,C++等,java,安卓等等嵌入式开发
展开
-
Lua 语法与C语言比较小结
注释写一个程序,总是少不了注释的。在Lua中,你可以使用单行注释和多行注释。单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止。相当于C++语言中的"//"。多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止。这种注释相当于C语言中的"/**/"。在注释当中,"[["和"]]"是可以嵌套的。Lua 编程经典的"Hello world"的程序总是被用来开始介绍一种语言。在Lua中,写一个这样的程序很简单:print("Hello world")...原创 2020-05-23 19:50:00 · 2414 阅读 · 1 评论 -
从源码中Activity 的定义来理解 Activity(ContextWrapper、Context、Activity、ContextThemeWrapper)
首先我们来看下源码中源于Activity的定义:public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Callback, KeyEvent.Callback, OnCreateContextMenuListener...转载 2019-03-20 13:28:16 · 734 阅读 · 0 评论 -
美团点评移动端基础日志库——Logan
背景对于移动应用来说,日志库是必不可少的基础设施,美团点评集团旗下移动应用每天产生的众多种类的日志数据已经达到几十亿量级。为了解决日志模块普遍存在的效率、安全性、丢失日志等问题,Logan基础日志库应运而生。现存问题目前,业内移动端日志库大多都存在以下几个问题:卡顿,影响性能 日志丢失 安全性 日志分散首先,日志模块作为底层的基础库,对上层的性能影响必须尽量小,但是日志的写...转载 2019-03-13 22:04:40 · 612 阅读 · 0 评论 -
MVVM架构在Flutter中的简单实践
写在前面Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS 和 Android平台。Flutter官网:https://flutter-io.cn还记得18年参加上海Google开发者大会的时候,听了一天的Flutter的介绍,之后不久1.0发布了,到现在1.2版本,Flut...转载 2019-03-13 13:24:25 · 1807 阅读 · 0 评论 -
进阶——解决非主线程中更新ui的问题如Only the original thread that created a view hierarchy can touch its views
引言以下handler部分因为看到原文地址:https://blog.csdn.net/crazymo_/article/details/54092099写的较好,所以节选转发该部分内容。今天同事在使用RxAndroid+Retrofit来请求服务器并根据返回的数据动态更新界面时,碰到一个问题Only the original thread that created a view hier...原创 2019-03-12 12:43:10 · 2642 阅读 · 0 评论 -
Android8.0 悬浮窗的实现
0. 前言 现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以及探索一下实现悬浮窗时的易错点。首先可以看看个悬浮窗效果图,很抱歉gif动态超过5M无法上传好啦,下面就来一曲火星哥骚气的《Treasure》吧。Demo源码地址:https://github...转载 2019-03-09 13:31:19 · 3155 阅读 · 1 评论 -
Android线程管理之详解(线程创建、线程终止、线程同步、阻塞队列、线程池)
前言 总结一下Android上的线程管理,今天先来总结一下线程创建、线程终止、线程同步、阻塞队列、线程池使用。一、线程创建 线程的创建包括三种方法,分别是继承自Thread,实现Runnable接口、实现Callback接口,前两个在开发中最为常见。①继承自Thread public class OneThread extends Thread { ...原创 2019-03-03 23:49:50 · 2371 阅读 · 1 评论 -
android如何修改view的显示前后位置
此方法源自:http://blog.csdn.net/goodlixueyong/article/details/40425387如果父控件是frameLayout那么后加上的控件就要在最上层显示了。如果动态修改那个控件显示在最上层。下面看效果图,下面是两个按钮,第一个可以按到hello lyf按钮,第二个按不到hello lyf按钮,下面看是如何实现让hello lyf到z轴最前面的...转载 2019-03-03 13:18:48 · 1408 阅读 · 0 评论 -
安卓8.0后通知栏Notification【判断APP通知栏权限是否开启,以及关闭了通知权限后设置或者自定义通知栏消息显示】
前言当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知,所以需要要么跳转至设置界面设置,要么自定义消息通知。效果图方法一:跳转到应用程序设置界面1、将NotificationSetUtil.java类复制到项目中package com.php.project.notificationsetutildemo.u...原创 2019-03-03 12:21:34 · 3491 阅读 · 3 评论 -
android textview 自动换行 整齐排版
一、问题在哪里?textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具。特殊情况包括:1)全角/半角符号混排(一般是数字、字母、汉字混排)2)全角/半角标点符号出现在行首时,该标点符号会连同其前一个字符跳到下一行3)英文单词不能被折成两行4)......二、怎么搞?通常有两类解决方案:1)修改文本内容,将所有符号全角化、在标点符号前...转载 2019-03-02 22:55:26 · 5166 阅读 · 0 评论 -
Android7.0版本后 Uri和文件路径互相转换封装类,实现系统分享功能及 FileProvider详细解析和踩坑指南,与fileprovider生成的Uri无法被识别
在调用系统相机、相册时,经常需要进行Uri和File路径的互相转换,并且在项目中遇到按照百度查到的处理7.0方法分享文件到微信的7.0之后版本会文件名后缀被增加了..octet.stream无法解决,最终使用强制转换方法解决问题。文件路径转UriAndroid 7.0以下,以文件路径创建一个File对象,然后调用Uri.fromFile(file)即可获得相应的Uri。//创建临时图...原创 2019-03-02 17:45:07 · 18678 阅读 · 4 评论 -
Android各版本发布时间及对应API(2019.3.2截至Android最新版本 P)minSdkVersion maxSdkVersion targetSdkVersion target区别
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.简单来说,就是一套可供调用的系统接口.比如地图类API—百度地图API,应用类API—豆瓣API,系统自带的WI-FI API和多媒体API。以下是Androi...原创 2019-03-02 16:30:01 · 5807 阅读 · 0 评论 -
2018中高阶Android面试题总结 上(附答案)
作者:Android高级架构链接:https://www.jianshu.com/p/a84ef9b7d588来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。这些面试题是我在今年换工作的时候整理,没有重点。包括java基础,数据结构,网络,Android相关等等。适合中高级工程师。由于内容过多,将会分为上下两部分。希望能够帮到一些朋友,如果帮助到你,希望...转载 2019-02-26 20:03:17 · 1157 阅读 · 0 评论 -
Android Bitmap处理
1.Android Bitmap与String的相互转换String转换成Bitmappublic Bitmap stringToBitmap(String string) { // 将字符串转换成Bitmap类型 Bitmap bitmap = null; try { byte[] bitmapArray; bitmapArray = Base64.decode(stri...原创 2018-12-26 13:53:16 · 608 阅读 · 0 评论 -
Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回
一、使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Activity处理。这种带数据的意图跳转需要使用activity的onActivityResult()方法。(1)startActivityForResult(Intent intent, i...转载 2018-12-24 22:03:17 · 500 阅读 · 0 评论 -
AndroidStudio修改项目名称
需求项目名称修改了,想修改Android Studio 中 project的名字右键project 的名字,refactor - rename ,填写好新名字后修改,被提示 “can’t rename root module”因为Android Studio只能修改根目录内的所有文件,要改project根目录名字,只能关闭Android Studio 先在操作系统中修改文件夹名字。 ...转载 2018-12-04 14:58:42 · 854 阅读 · 0 评论 -
android studio与eclipse之间项目切换
一、android studio导入eclipse手工改!!1.在eclipse 上新建一个空的项目;2.点击android studio 中的android 视图, a.替换as 中的AndroidManifest.xml -> eclipse 中的AndroidManifest.xml; b.替换as 中java 目录下源文件 -> eclip...原创 2018-12-04 13:34:07 · 3042 阅读 · 0 评论 -
Android StudioV3.2.1以上版本的两种模式及签名配置、apk打包混淆
我们使用AndroidStudio 运行我们的app,无非两种模式:debug和release模式。debug模式debug模式使用一个默认的debug.keystore进行签名。这个默认签名(keystore)是不需要密码的,它的默认位置在C:\Users\<用户名>\.Android\debug.keystore,如果不存在Android studio会自动创建它。...原创 2018-12-04 13:01:12 · 2840 阅读 · 3 评论 -
Android7.0以前和7.0以后开启闪光灯的方式
1.安卓7.0以后闪光灯是通过CameraManger来进行管理的,以下是7.0以后闪光灯开启关闭代码:@TargetApi(Build.VERSION_CODES.N) @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public void changeFlashLight(boolean openOrClose) { ...转载 2018-11-22 13:01:30 · 1118 阅读 · 2 评论 -
RecyclerView(一)点击事件的两种方式
recyclerview自身不带有点击事件的回调,以下实现recyclerview点击事件的两种方式1、通过接口回调的方式:直接上代码加注释 1、首先定义点击的接口import android.view.View;//点击事件接口回调public interface OnItemClickListener{ void onItemClick(View view, in...原创 2018-11-22 12:51:41 · 2512 阅读 · 0 评论 -
android面试题之数据结构篇
1.常见的数据结构介绍 https://www.jianshu.com/p/230e6fde9c75(转)2.常见的5种并发集合1、常用的五种并发包ConcurrentHashMap CopyOnWriteArrayList CopyOnWriteArraySet ArrayBlockingQueue LinkedBlockingQueue2、ConcurrentHa...转载 2018-08-23 01:39:18 · 302 阅读 · 0 评论 -
android精妙面试题集三
1、绘制Activity和Fragment生命周期流程图,并以对比图形式展示。Activity生命周期图:Fragment生命周期图: 两者对比图:2、如何避免OOM异常OOM(out of Memory)即内存溢出异常,也就是说内存占有量超过了VM所分配的最大,导致应用程序异常终止。通常OOM都发生在需要用到大量内存的情况下,因为Android的每...原创 2018-08-23 01:23:08 · 338 阅读 · 0 评论 -
Activity、Fragment、Service、View生命周期
1. Activity 生命周期 onCreate : 该方法是在Activity被创建时回调,它是生命周期第一个调用的方法,我们在创建Activity时一般都需要重写该方法,然后在该方法中做一些初始化的操作,如通过setContentView设置界面布局的资源,初始化所需要的组件信息等。 onStart : 此方法被回调时表示Activity正在启动,此时Activity已...转载 2018-08-22 22:42:16 · 769 阅读 · 0 评论 -
安卓重要生命周期和流程图
转载自https://blog.csdn.net/RoseChan/article/details/514865131-Activity生命周期2-Fragment生命周期3-Service生命周期4-View的绘制流程图5-Looper-Message-Handler流程图6-MediaPlayer生命周期7-SurfaceView生命周期...原创 2018-08-22 22:36:58 · 935 阅读 · 0 评论 -
安卓面试题二
填空题:1.我们用________来定义一个整数,用Char来定义一个字符类型,称为原始数据类型;2.android 的四大组件是____________,service,broadcast和contentprovide;3.activity一般会重载7个方法用来维护其生命周期,除了_____________________,onStart(),onDestory() 外,还有on...原创 2018-08-22 22:28:07 · 1804 阅读 · 0 评论 -
安卓面试题集大全及解答
1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 可以认为是同一个概念。①DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。②每一个DVM都是在Linux 中的一个进程所以说可以认为是同一个概念。 2、sim卡的EF 文件有何作用 EF就是作存储并和手...原创 2018-08-22 22:14:56 · 1313 阅读 · 0 评论 -
安卓常用6种设计模式总结
转载自https://blog.csdn.net/u012583459/article/details/47079529 和https://blog.csdn.net/u012583459/article/details/47079549由于项目变更的频繁性,作为一名程序员,我们需要掌握设计模式的必要性,就不言而喻~~,下面就是一些我自己学习的设计模式总结。 接下来,主要...转载 2018-08-19 23:10:19 · 13174 阅读 · 2 评论 -
8种常用的android设计模式
一般来说,常用的android设计模式有以下8种:单例、工厂、观察者、代理、命令、适配器、合成、访问者。 单例模式:目的是为了让系统中只有一个调用对象,缺点是单例使其他程序过分依赖它,而且不同单例运行在不同进程中,使得维护困难; 工厂模式:生产固定的一些东西,如抽象类,缺点是产品修改麻烦;如喜欢动作片和爱情片的人分别向服务器发出同一个请求,就可以得到他们想看的影片集,相当于...转载 2018-08-19 23:04:13 · 455 阅读 · 0 评论 -
Android设计模式之23种设计模式一览
本文转载自https://blog.csdn.net/happy_horse/article/details/50908439Android设计模式之23种设计模式一览 一 什么是设计模式?(1)基本定义:设计模式(Design pattern)是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码、让代码更容易被他人理解。设计模式是是软件工程的基石脉络,如大厦...转载 2018-08-19 22:43:05 · 1588 阅读 · 0 评论 -
Android开发之多线程的操作方式Thread,TimerTask,AsyncTask
雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/344Android研究院之游戏开发多线程(十六)游戏开发与软件开发多线程的重要性 如果程序主线程被阻塞超过5秒,系统会提示“应用程序无响应” 这就是ANR 。 ANR的全称是Application Not R...转载 2018-08-19 22:39:08 · 638 阅读 · 0 评论 -
Android编码规范
1 概述1.1 编写目的本文描述安卓开发过程中有关包、类、接口、方法、变量、常量、资源等命名方式,以及编码格式、注释格式等规则,用于指导部门内的日常开发。1.2 预期读者所有成员。 1.3 适用范围所有安卓产品的开发任务。2 命名规范2.1 基础规范1、基础原则为命名要足够长以便能表达其含义,并且要足够短以便防止冗长。2、不使用拼音。英文单词尽量不擅自缩写,除非缩写是约定俗成的,比如html、ur...原创 2018-03-05 18:07:08 · 333 阅读 · 0 评论 -
PDF结构分析
一、 简单了解PDF1PDF格式一个PDF文档从根本上来说是一个8字节序列。 其实PDF格式和我们已经熟知的HTML,XML等结构化的文件格式一样,包含有关键字,分隔符,数据等等。不同的是PDF文件是按照二进制流的方式保存的,而html文件则是可读的文本方式保存的。2PDF规范的发展PDF规范的6次升级:1.11995 加入了文档加密(40字节),线索树,名字树,链接,设备独立色彩...原创 2018-03-05 18:04:09 · 12071 阅读 · 2 评论 -
百度语音离线合成授权破解
1 研究背景1.1 研究现状百度语音合成(Text to Speech)目前已能正常语音合成或停止合成功能,但因临时授权文件的初始日期会与设备系统的日期比较,若设备系统时间超过授权文件初始日期30天即为过期无法进行语音合成,存在缺陷。1.2研究目的和意义设备使用百度语音合成来进行语音提示时能正常播放。 2 项目主要研究内容2.1 主要工作内容 ①分析临时授权文件和百度语音so动态库,寻...原创 2018-03-05 17:36:05 · 5002 阅读 · 29 评论 -
百度语音合成离线使用研究
1 研究背景1.1 百度语音合成概述语音合成(Text to Speech)是将文本合成为语音,即声音文件。语音合成是实现人机语音交互,建立一个有听和讲能力的交互系统所必需的关键技术。随着语音技术的发展,百度自主研发了语音合成系统(TTS),功能是接受用户发送的文本,生成语音发送给用户。1.2研究目的和意义设备有用到语音提示,并且设备无连接网络条件,当前社会上能提供离线语音合成功能技术支持的产家如...原创 2018-03-05 17:18:47 · 5813 阅读 · 2 评论