【Android】
Android 基础与实现原理
Dreaming_My_Dream
这个作者很懒,什么都没留下…
展开
-
获取屏幕相关属性
获取屏幕的宽高和像素密度public class ScreenUtil { /** * 获取屏幕相关参数 * @param context * @return 屏幕宽高 */ public static DisplayMetrics getScreenSize(Context context) { DisplayM...原创 2019-01-25 14:40:36 · 225 阅读 · 0 评论 -
Android px 与dp 转换
根据公式dp = px / 设备密度public class DensityUtils { public static int dip2px (float dip,Context ctx){ float density = ctx.getResources().getDisplayMetrics().density; int px = (int原创 2017-07-13 17:16:36 · 347 阅读 · 0 评论 -
Fragment 基本使用
Fragment 表示 Activity 中一种行为或用户界面的一部分,它有自己的生命周期接收自己的输入事件,也可以在 Activity 运行时添加或删除事件。Fragment 生命周期管理 Fragment 的生命周期非常类似管理 Activity 的生命周期Activity 布局文件中添加 fragment,启动 Activity 生命周期执行顺序。Activity 布局文件中添加 fragment,按 back 键生命周期执行顺序。测试代码MainActivitypub.原创 2020-05-14 16:07:43 · 322 阅读 · 0 评论 -
Android 日常笔记
Android知识小点android:ems=“10” 设置TextView或EditView的宽度为10个字符,如果超过则不显示。ImageView Scaletype 属性,决定图片在View上显示的样子,如,显示整体还是部分或是缩放center:按照图片原来的size居中显示,如果图片的长宽大于View,则截取图片的居中部分center_crop:按比例扩大图片的size居中显示,原创 2016-08-10 16:13:44 · 465 阅读 · 0 评论 -
Android 清单文件主要概述
每个 Project 中必须有一个 AndroidManifest.xml 文件,清单文件描述了关于 Android 构建工具、Android 操作系统和 Google Play 的应用程序基本信息。主要声明以下内容:应用包名,通常与代码的命名空间相匹配。应用的组件,包括所有的 Activities, Services, Broadcast receivers, and Content...原创 2020-03-29 16:53:56 · 2760 阅读 · 0 评论 -
Android Toolbar 相关使用
从 Android 3.0 (API 11) 开始,默认主题背景的 Activity 均使用 ActionBar 作为应用栏,随着 Android 版本的演化,应用栏的功能逐渐添加到 ActionBar 中,不能版本的 Android 系统 ActionBar行为不同。Toolbar 类的出现能够确保应用在最大范围的设备保持一致的行为,能够运行在 Android 2.1(API 7)或更高的设...原创 2019-12-17 11:54:06 · 187 阅读 · 0 评论 -
Android 文件存储目录结构
一、Android 存储结构Android 4.4 以下的系统存储结构:内部存储程序的内部存储的根目录是在 data/data/<包名> 下。SharedPreferences、SQLite、Cache、Code_Cache 都存储在该目录下,当应用被卸载后,目录下的文件也会被删除。外部存储存储目录是在 /storage/emulated/0 目录下,手机内置的机身存...原创 2019-10-31 09:32:45 · 405 阅读 · 0 评论 -
Android Studio 使用 CMake 进行 NDK 开发
Android Studio 2.2 版本完全支持 NDK 开发,当创建一个 Java 与 C++ 混编的工程时,程序默认使用的是 CMake 编译原生库。CMake概念CMake 是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装编译过程。为什么使用 CMake可以直接的在 C/C++ 代码中加入断点,进行调试。Java 引用的 C/C++ 中的方法,可以直接...原创 2019-10-22 19:59:16 · 439 阅读 · 1 评论 -
Android 系统信息与应用信息获取
要获取系统的配置信息,通常从两方面获取android.os.BuildSystemPropertyandroid.os.Build导入包 import android.os.Build;public static String getBuildInfo() { String board = Build.BO...原创 2019-01-23 11:38:51 · 198 阅读 · 0 评论 -
Mac Android studio NDK 开发
NDK 是 Android 所提供的一个开发工具集,通过 NDK 可以在 Android 中更加方便的通过 JNI 来访问本地代码,比如 C 或者 C++。NDK 示例创建 Android 工程,工程名为 HelloNDK。在 MainActivity 中声明 native 方法public static native String getStringFromC();通过...原创 2019-01-27 21:10:12 · 396 阅读 · 0 评论 -
ListView 使用技巧
虽然在 Android 5.X 时代,RecyclerView 在很多地方都在逐步取代 ListView ,但使用范围依然非常的广泛,下面展示使用 ListView 的常用技巧和拓展以及示例代码。1.使用 ViewHolder 利用视图缓存机制,避免每次 findViewById() 实例化控件####public class NotifyAdapter extends BaseAdapt...原创 2019-01-19 22:40:39 · 175 阅读 · 0 评论 -
Android Toolbar 的使用
由于 Toolbar 更加自由、可控,Google 在逐渐使用 Toolbar 代替 Actionbar。要使用 Toolbar 必须引入 appcompat-v7 支持,在 styles.xml 中设置主题为 NoActionbar。api 'com.android.support:appcompat-v7:21.0.3'<?xml version="1.0" encodin...原创 2019-01-24 17:34:48 · 142 阅读 · 0 评论 -
Android本地缓存图片示例代码
本地缓存工具类public class LocalCacheUtils { private static final String LOCAL_CACHE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/xxx_cache"; // 写本地缓存 public void setLocalC原创 2017-07-13 09:17:43 · 721 阅读 · 0 评论 -
内存缓存图片及原理
垃圾回收器与引用 垃圾回收器只会回收没有引用的对象,不及时回收 默认为强引用,垃圾回收器不会回收 软引用,垃圾回收器会考虑回收 SoftReference类 弱引用,垃圾回收器最会考虑回收 WeakReference类 虚引用,垃圾回收器优先考虑回收 PhantomReference类 因为从 Android 2.3 (API Level 9)开始,垃圾回收器会原创 2017-07-13 14:54:40 · 940 阅读 · 0 评论 -
Android 申请运行时权限并封装
Android开发团队在6.0系统中加入运行时权限的功能,用户不需要在安装软件的时候一次性授权所有的权限,而是可以在软件使用过程中对某一权限进行授权。Android 将所有权限分为两类,一类是普通权限,一类是危险权限。普通权限:不会直接威胁到用户的安全及隐私,系统会自动帮我们授权。危险权限:那些可能触及用户的隐私,或者设备安全性的权限,比如设备联系人信息,定位设备地理位置等。危险权限一共9组24原创 2017-12-15 15:29:33 · 448 阅读 · 0 评论 -
Android 使用CrashHandler获取应用的crash信息
当我们的app发布后,用户在使用过程中发生了crash,可以通过CrashHandler来监视应用的crash信息,UncaughtExceptionHandler会调用uncaughtException方法将信息上传到服务器或下载到SD卡,后续版本中,开发人员就可以对一些错误进行修复了。首先实现一个UncaughtExceptionHandler对象在uncaughtException方法进行异常原创 2017-12-15 16:09:05 · 570 阅读 · 0 评论 -
Android Studio 目录结构详解
. gradle和.idea 两个目录放置的是Android Studio 自动生成的文件,无须关心,也不要手动编辑。bulid 这个目录也不需要关心,主要包含编译时自动生成的文件。gradle 包含了gradle wrapper的配置文件,使用gradle wrapper方式不需要提前将gradle下载好,自动根据本地的缓存情况决定是否联网下载gradle。默认...原创 2018-05-17 14:05:46 · 400 阅读 · 0 评论 -
Android Studio 两个build.gradle文件详解
最外层build.gradlebuildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' }}allprojects { rep...原创 2018-05-17 15:17:49 · 2015 阅读 · 0 评论 -
Android 使用通知技巧
直接上代码,注意要是用support-v4库中提供的 NotificationCompat 类以便达兼容Intent intent = new Intent(SendNotification.this, MainActivity.class); PendingIntent pi = PendingIntent.getActivity(SendNoti...原创 2018-05-25 10:36:36 · 182 阅读 · 0 评论 -
Android 拍照功能
启动相机 File file = new File(getExternalCacheDir(), "output_image.jpg"); //设置文件名称,文件夹 if (file.exists()) { file.delete(); } ...原创 2018-05-25 16:36:14 · 168 阅读 · 0 评论 -
Activity 中获取 View 的宽/高的方法
Activity 中在 onCreate、onStart、onReasume 中均无法正确得到某个 View 的宽高信息,这是因为 View 的 measure 过程和 Activity 的生命周期方法不是同步执行,如果没有测量完毕,那么获得的宽/高就是0。下面三种方法可以解决这个问题。(1)Activity/View#onWindowFocusChanged方法的含义:View...原创 2018-06-13 16:14:15 · 282 阅读 · 0 评论 -
Android生命周期该做的事
onCreate()声明UI元素,定义成员变量,配置UI等尽量少做些事,避免程序启动太久而看不见界面一旦onCreate() 操作完成,系统会迅速调用onStart() 与onResume()方法onDestoty()需要将该activity彻底移除的信号时,系统会调用这个方法大多数app并不需要实现onDestory()这个方法,由于局部类references会随activity的销毁原创 2016-08-11 14:41:11 · 394 阅读 · 0 评论