- 博客(15)
- 收藏
- 关注
原创 Android快速开发整理(库、插件、常用网站)
二、第三方库部分库是jitpack的发布方式,需要在project下的build.gradle中加上(可直接加上,一劳永逸)工具。
2024-05-24 03:20:44
516
原创 android常用数据库字段描述
strColumnName=type strColumnValue=1 //类型 1是接收到的,2是发出的。content://contacts/people //本地联系人列表信息。content://contacts/phones //本地联系人列表信息。content://call_log/calls/ //本地通话记录。content://mms 彩信。
2024-05-24 03:04:23
423
原创 Android之Fragment简介和使用实例
而要建立两个属于同一个Activity的Fragment对象的通信,则最好的方法就是借助宿主Activity这个桥梁来完成信息的传递,就比如上面讲的那个列表新闻显示的例子(FragmentA显示新闻标题列表,FragmentB显示新闻的详细内容),当我们点击FragmentA中的列表选项时,则需要将列表选项的值传递给FragmentB,以便FragmentB根据用户点击的列表项显示对应的新闻内容。根据上面的运行结果我们可知,我们已经成功完成了根据不同的情况动态地添加或替换不同的Fragment对象的测试。
2024-05-24 02:46:53
535
原创 Android中的引用类型(强引用,弱引用,软引用,虚引用)
如果对象A没有显式的把对象B的引用设为null的话,就只有当对象A被垃圾回收之后,对象B才不再有引用指向它,才可能获得被垃圾回收的机会。弱引用并不能阻止垃圾回收。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。Android中的对象有着4种引用类型,垃圾回收器对于不同的引用类型有着不同的处理方式,了解这些处理方式有助于我们避免写出会导致内存泄露的代码。需要注意的是,GC回收的是对象,在垃圾回收器运行的时候,如果对一个对象的所有引用。
2024-05-24 02:45:54
361
原创 Android 面试:常见问题总结
使用SharedPreferences存储数据;文件存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据;Android 中的数据存储都是私有的,其他应用程序都是无法访问的,除非通过ContentResolver获取其他程序共享的数据。ContentProvider:为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。无论数据的来源是什么,ContentProvider都会认为是一种表,然后把数据组织成表格。
2024-05-24 02:25:13
578
原创 Android 面试总结 - ViewModel
/ 若 viewModelStore 为空,则尝试从 getLastNonConfigurationInstance() 中获取。// 重写了 ViewModelStoreOwner 接口的唯一的方法 getViewModelStore()// 将创建的 ViewModel 实例放进 mViewModelStore 缓存中。// 依然为空,说明没有需要缓存的,则返回 null。// 返回新创建的 ViewModel 实例。// 返回缓存的 ViewModel 对象。在因配置更改而销毁重建过程中会先调用。
2024-05-24 02:24:14
277
原创 Android 使用Theme实现动态切换主题详细教程
Android 通过在activity中使用 setTheme()函数来设置背景样式,通过加载styles.xml里的样式来设置Android 应用的主题。Android通过AssetManager来加载皮肤包,用皮肤包里的资源替换现有资源达成换肤效果。在values文件夹下创建attr.xml ,在attr.xml写入属性名。在styles.xml文件下自定义主题样式, 在这里写个例子示范。在colors.xml 填入需要用到的颜色。设置控件的颜色样式,注意红框圈起来的部分。:实现读取配置文件设置主题。
2024-05-24 02:08:10
615
原创 Android 之 Jar 包偷天换日
在 Android 开发中,很多时候,我们可能想要修改第三方库里的某些类。第一种方式,优点是方法简单不容易出错,而且 Debug 的时候不会有什么问题。缺点就是操作麻烦,升级的时候需要和上游进行 Rebase。而且当遇到 OkHttp 这种用 Maven 组织的项目,对惯用 Gradle 组织项目的 Android 工程师更是个灾难。第二种方式,优点是非侵入,不需要下载和引入第三方库的源码。
2024-05-24 02:07:11
346
原创 Android SIGABRT的可能原因及开启手机Log日志
当操作系统发现不安全的情况时,它能够对这种情况进行更多的控制,必要的话,它能要求进程进行清理工作。注:NE (Native layer exception) 发生在Linux用户空间的异常,通常是由C/C++代码和库文件引起的。发生在UIApplication WillTerminate 时,是主动退出应用时发生的,所以对用户没什么实际影响。iOS10访问相册时发生,目前只发生在iOS10+系统,需要修改工程plist文件,加入访问权限提示信息。系统版本:Android 10,level 29。
2024-05-24 01:50:01
517
原创 Android root 原理
但是,要考虑一种情况,比如说,一个用户是有权修改自己的密码的,但是记录密码的文件/etc/shadow只有root用户才是可写的,那普通用户如何才能修改自己的密码呢?在讨论root的原理之前,有一个非常重要的概念,就是文件的setUID权限。linux下普通的文件权限大家都很清楚,可读,可写,可执行,下图很清楚的一个普通的可执行文件root的权限,r(可读),w(可写),x(可执行)。可以看到passwd的二进制文件的权限位中不仅仅是rwx了,多了一个s权限,而这个s权限就是我们的主角,setUID权限。
2024-05-24 01:49:03
545
原创 Android --- 使用纯java代码实现相对布局(通俗易懂)
/设置一个属性,在java布局中和xml不同的是,xml的属性是设置在控件中,而Java是事先设置,然后再把它添加到控件中去。//这行代码对应xml中的android:layout_centerHorizontal=“true”添加如下代码,不再显示activity_main,而是用纯java代码编写的re。button实例化好了,它的布局规则设置好了。重要,取消MainActivity中设置的布局文件。//设置btn1显示内容。//设置布局的背景颜色。//这几行代码的对应。
2024-05-24 01:30:20
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅