Android刘海屏适配历程,兼容Android8.0

起因:Iphone X掀起的一波刘海屏手机潮(虽然个人觉得很丑),国内各大手机厂商纷纷效仿,导致我们的小游戏各种黑边奇丑无比 翻阅CSDN大神奉献的博文参考:android 兼容所有刘海屏的方案大全 踩坑历程一:项目经理要求不适配了,简单处理,让游戏界面显示状态栏。 1.判断手机是否为刘海屏手机,根据android 兼容所有刘海屏的方案大全可以获取华为、小米、VO的刘海屏标志。 2.刘海屏手机下: a.启动Activity保持全屏不变 b.游戏Activity,如果为竖屏状态,需要退出全屏,显示状态栏(退出全屏),并且隐藏虚拟按键,如果为横屏状态: c.横 ......

android 跳转到系统设置界面的所有Intent

Intent 的 意图: Intent intent = new Inetnt(Setings); Setings: 1. ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent); 2. ACTION_ADD_ACCOUNT : // 显示添加帐户创建一个新的帐户屏幕。【测试跳转到微信登录界面】 Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); startActivity(intent); 3. ACTION_AIRPLANE_MODE_SETTINGS: // 飞行模式,无线网和网络设置界面 Intent intent = ne ......

ADT各版本下载地址

https://dl.google.com/android/ADT-23.0.7.zip https://dl.google.com/android/ADT-23.0.6.zip http://dl.google.com/android/ADT-23.0.4.zip http://dl.google.com/android/ADT-23.0.3.zip http://dl.google.com/android/ADT-23.0.2.zip http://dl.google.com/android/ADT-23.0.0.zip http://dl.google.com/android/ADT-22.6.3.zip http://dl.google.com/android/ADT-22.6.2.zip http://dl.google.com/android/ADT-22.6.1.zip http://dl.google.com/android/ADT-22.6.0.zip http://dl.google.com/android/ADT-22.3.0.zip http:// ......

八款开源 Android 游戏引擎

初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游 戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。 事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个狭小的天地间,与外界 ......

Android6.0权限管理

Android 6.0动态权限管理的解决方案 官网说明: https://developer.android.com/about/versions/marshmallow/android-6.0.html Android将权限分为正常权限 和 危险权限 Android系统权限分为几个保护级别。需要了解的两个最重要保护级别是 正常权限 和 危险权限: (1)正常权限: 涵盖应用需要访问其沙盒外部数据或资源,但对用户隐私或其他应用操作风险很小的区域。 这些权限在应用安装时授予,运行时不再询问用户。例如: 网络访问、WIFI状态、音量设置等。 (2)危险权限: 涵盖应用需要涉及用户隐私信息的数据或资源,或者可能对用 ......

Android 代码混淆

eclipse混淆: project.properties文件中打开混淆配置: proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt Android混淆: buildTypes{ release{ minifyEnabled true //开启混淆同时会删除无用的资源 zipAlignEnabled true //压缩优化 shrinkResources false //移出无用资源 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' } } 混淆规则 1.基本规则 两个常用的混淆 ......

Android IPC操作步骤

一、什么是IPC? IPC是Inter-Process-Communication的缩写,意思是进程间通信或者跨进程通信; 说起进程间通信,我们应该首先来了解一下什么是进程。按照操作系统的描述,线程是CPU调度的最小单元,而进程一般指一个执行单元,在移动设备上指一个程序或应用;一个进程可以包含多个线程; 为什么要用到多进程? 在Android系统中一个应用默认只有一个进程,每个进程都有自己独立的资源和内存空间,其它进程不能任意访问当前进程的内存和资源,系统给每个进程分配的内存会有限制。如果一个进程占用内存超过了这个内存限制,就会报OOM ......

Android学习笔记之性能优化SparseArray

学习内容: 1.Android中SparseArray的使用..     昨天研究完横向二级菜单,发现其中使用了SparseArray去替换HashMap的使用.于是乎自己查了一些相关资料,自己同时对性能进行了一些测试。首先先说一下SparseArray的原理.   SparseArray(稀疏数组).他是Android内部特有的api,标准的jdk是没有这个类的.在Android内部用来替代HashMap<Integer,E>这种形式,使用SparseArray更加节省内存空间的使用,SparseArray也是以key和value对数据进行保存的.使用的时候只需要指定value的类型即可.并且key不需要封装成对象类型.   楼主根据 ......

Android ANR log trace日志文件分析

Trace文件怎么获取? traces.txt只保留最后一次ANR的信息,Android系统有个DropBox功能功能,它能记录系统出现的crash错误.因此保留有发生过的ANR的信息.(log路径:/data/system/dropbox) 获取系统crash log: adb shell dumpsys dropbox –print >>log.txt 系统生成的Trace文件保存在data/anr,可以用过命令adb pull data/anr/取出 Trace文件怎么生成的? 当APP(包括系统APP和用户APP)进程出现ANR、应用响应慢或WatchDog的监视没有得到回馈时,系统会dump此时的top进程,进程中Thread的运行状态就都dump到这个Trace文件中了. 导 ......

23种设计模式总结

1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。) 通用代码:(是线程安全的) public class Singleton { private static final Singleton singleton = new Singleton(); //限制产生多个对象 private Singleton(){ } //通过该方法获得实例对象 public static Singleton getSingleton(){ return singleton; } ......

Android设置全屏,退出全屏、沉浸式、隐藏虚拟按键

一: 设置全屏 方式一: public void setFullScreen(Activity act){ act.requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题 act.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏 } 方式二: <style name="FullSceneTheme" parent="android:Theme.Black"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="android:windowNoTitle" ......

Android环境搭建-Android Studio

要点: 1、下载JDK、Gradle、Android studio 2、安装JDK、Gradle 3、配置环境变量 4、安装Android Studio 5、配置Android Studio 一:准备工作: 1、下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 2、下载Gradle https://gradle.org/releases/ 3、下载 Android Studio http://www.android-studio.org/ 二:开始安装三个软件,安装步骤完全傻瓜式,就不在贴图。 三:配置JDK和Gradle环境变量: 右击”我的电脑”—-“属性”—-“高级系统设置”—-&# ......

Android教学大纲-知识体系结构

首先,我不愿意去组织整个的Android 学习框架,所以直接搬了别人的教学框架(当然,也可以认为是作者没有整体框架意识)。 Android教学大纲 一、Android学习进度规划: 第1周:【UI基础】 第1天: Android环境搭建 第2天: 常用UI布局及主要控件 第3天: 常用UI控件及事件处理 第4天: UI高级控件及Android资源 第5天: Activity生命周期 【知识点】 Android环境搭建及工程目录介绍(前期使用Eclipse,版本:SDK21及以上版本,四周后逐渐接触Android Studio) 常用UI布局及主要控件 LinearLayout、RelativeLayout常用属性【 ......

Android教学大纲-编写理由

首先,编写Android教学大纲并非为了教学,也并非为了给别人学习。其次,作者水平很一般,没有能力去写文章来误人子弟。那你要说,那还写个啥子。想写这个并非心血来潮,原因有两点:

1.当年还在学校的时候,曾经给我们老师写的Android入门教学课程太杂,虽然最后和老师闹了矛盾,老师也不需要这个课程了,但为了弥补自己的过失,决定重写。

2.毕业很多年,一直在一家公司,兼任各种打杂的工作,并未有任何Android技术上的提升,已经疲倦于打杂的工作,为了捡起曾经丢失东西,决定重写。

2018-08-04 01:00

 

Android Theme和解决启动黑屏

1.修改AndroidManifest.xml 设置App的全局Theme或者Activity的界面Theme <application android:allowBackup="true" android:icon="@drawable/ipod_icon" android:label="@string/app_name" android:launchMode="singleTask"> <!-- iPod主界面 --> <activity android:name="com.apical.apicalipod.IPodMainActivity"   <!-- 使用上面定义的样式 mythou--> android:theme="@style/Theme.AppStartLoad" android:label="@string/app_name" > <intent-filter& ......

Android-网络图片下载工具类-三级缓存

一、前言: 之前写过一个简单的网络图片读取工具,读取网络图片,在Android应用中经常可见,在ListView、GridView这些控件中尤其可见。而为了提高用户体验,这些控件图片的读取,一般都是采用异步加载的方式,而使用缓存则是必不可少的环节。   现在网络上已经出现了很多功能丰富、使用简单的图片下载框架,例如universalimageloader,使用只需要初始化并且传入参数即可。这里我打算自己实现一个功能简单的图片下载工具类,采取了内存缓存+磁盘缓存+网络获取的三级缓存方式。 二、思路: 三级缓存,在网上查阅过很多资料,个人所知 ......

Java正则表达式的语法与示例

概要:Java正则表达式的语法与示例 目录 匹配验证-验证Email是否正确 在字符串中查询字符或者字符串 常用正则表达式 正则表达式语法 1匹配验证-验证Email是否正确 Java | 复制 public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftlab.net"; // 邮箱验证规则 String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}"; // 编译正则表达式 Pattern pattern = Pattern.compile(regEx); // 忽略大小写的写法 ......

Android权限大全

1.android.permission.WRITE_USER_DICTIONARY  允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS  写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM  读取用户的社交信息流 4.android.permission.WRITE_SMS  允许程序写短信 5.android.permission.WRITE_SETTINGS  允许程序读取或写入系统设置 6.android.permission.WRITE_SECURE_SETTINGS  允许应用程序读取或写入安全系统设置 7.android.permission.WRITE_PROFILE  允许程序写入个人资料数据 8.com.android.br ......

Android 15个流行框架

1. 缓存 DiskLruCache    Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader  一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco  一个用于管理图像和他们使用的内存的库 Glide   一个图片加载和缓存的库 3. 图片处理 Picasso-transformations 一个为Picasso提供多种图片变换的库 Glide-transformations   一个为Glide提供多种图片变换的库 Android-gpuimage    基于OpenGL的Android过滤器 4. 网络请求 Android Async HTTP  Android异步HTTP库 AndroidAsync    异步Soc ......

Android 6.0 动态权限申请简单简洁优雅的处理方式

Android M 或以上的设备,在使用涉及隐私的安全权限时,需要动态申请,虽然不难,但写下来代码工作量也不少,而且几乎每个应用都需要用到。所以一直在探索一个要足够简单简洁优雅的处理方式,强迫症的精神指导我要拒绝一切繁琐。至于完不完美那就仁者见仁了。 一、思路: 如果在每个用到权限的地方去申请,有点繁琐,所以做法是直接在每个Activity界面显示前就把该界面所需的权限全部申请允许了,再进入正常的流程。如果有权限未被允许,开发者可以在接口中自己处理,可以直接提示并退出,或者提示权限的作用后重新发起权限申请。 ......