- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 Android读取设备信息
adb读取CPU信息adb shellcd /proccat cpuinfo读取内存private String getTotalMemory() { String str1 = "/proc/meminfo";// 系统内存信息文件 String str2; String[] arrayOfString; long ini...
2019-05-16 15:33:24
576
1
转载 Android简单测试代码的执行时间
转自Android简单测试代码的执行时间以毫秒为单位long startTime = System.currentTimeMillis(); // 获取开始时间 // doThing(); // 测试的代码段 long endTime = System.currentTimeMillis(); // 获取结束时间 Log.e("wsy","代码运行时间: " + (endTime ...
2019-05-16 09:33:05
907
原创 Android Draw的相关技术点
添加某个变化的数字在图片上 canvas.save(); Rect rect = drawable.getBounds(); float textWidth = mTextPaint.measureText(String.valueOf(getProgress())); canvas.drawText(String.valueOf(g...
2019-05-08 09:40:28
200
原创 Tablayut使用总结
常用属性app:tabIndicatorColor :指示线的颜色app:tabIndicatorHeight :指示线的高度app:tabSelectedTextColor : tab选中时的字体颜色app:tabMode=“scrollable” : 默认是fixed,固定的;scrollable:可滚动的...
2019-04-30 18:14:36
221
原创 android Dialog简单总结
将一个Activity作为一个Dialog展示<activity android:theme="@android:style/Theme.Holo.DialogWhenLarge" >
2019-04-29 15:40:23
199
转载 Android View的构造方法
public View(Context context);public View(Context context, AttributeSet attrs);public View(Context context, AttributeSet attrs, int defStyle);如果要在代码中new一个View对象,我们一般会使用第一个构造函数。如果是在XML文件中声明的View,系统会...
2019-04-25 15:58:21
445
转载 ubuntu下强大的文字编辑命令
grep -nr “hello” *gedit res/xml/hello.xml +71打开到第71行grep -inr “hello” *-a --text #不要忽略二进制的数据。 将 binary 文件以 text 文件的方式搜寻数据-A<显示行数> --after-context=<显示行数> #除了显示符合范本样式的那一列之外,并显示该行...
2019-04-16 17:50:03
417
原创 Android性能优化
关于过度绘制的解决方案避免出现多个使用layout-weight属性的的LinearLayout。给Activity设置背景setContentView(R.layout.car_launcher);getWindow().setBackgroundDrawableResource(R.drawable.bg);或在自己的AppTheme里面去除该背景色即可:或者在Activity...
2019-04-10 19:00:19
156
原创 Android源码相关操作
修改Launcher,如何推到模拟器source build/envsetup.shlunchmake Launcher有apk的存放路径,到达该位置,进行adb install -r *.apk
2019-04-10 13:58:08
82
转载 Android View的onTouch和onClick和onLongClick事件
转载自http://www.cnblogs.com/butterfly-clover/p/4044232.html这三个事件的调用顺序是:onTouch->onLongClick->onClick先看这三个事件的处理函数:public boolean onTouch(View v, MotionEvent event); public boolean onLongCl...
2019-04-10 10:41:28
565
转载 view的onFinishInflate()何时调用的?
转载自https://blog.csdn.net/ysh06201418/article/details/43227069onFinishInflate 当View中所有的子控件均被映射成xml后触发比如你 自定义一个view叫myView ,路径是,com.test.view.MyView,此view是继承LinearLayout,定义的布局文件是my_view.xml里面内容是:...
2019-04-10 10:41:22
200
转载 Android开发之Drag&Drop框架实现拖放手势
Android3.0提供了drag/drop框架,利用此框架可以实现使用拖放手势将一个view拖放到当前布局中的另外一个view中。本文将介绍如何使用拖放框架。一、实现拖放的步骤 首先,我们先了解一下拖放过程,从官方文档可以知道,整个拖放过程共分为4个步骤,具体如下: 1、 Started:启动拖放,主要是调用被拖放View的startDrag方法。此方法原型为:pu...
2019-04-10 10:41:15
760
转载 事件分发笔记
本文为学习Carson_Ho的文章《Android事件分发机制详解:史上最全面、最易懂》所做的笔记,如需详细了解,移步《Android事件分发机制详解:史上最全面、最易懂》事件分发的对象是谁?答:点击事件(Touch事件)Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象一般情况下,事件列都是以DOWN事件开始、UP事件结束,中间有无数的MOVE事件用...
2019-04-10 10:41:06
164
原创 《数据存储全方案——详解持久化技术》笔记
Android系统中实现数据持久化功能的3种方式文件存储、SharedPreference存储以及数据库存储SharedPreferences存储SharedPreferences是使用键值对的方式来存储数据的。将数据存储到SharedPreferences中首先需要获得SharedPreferences对象。Android中主要提供了3种方法得到SharedPreferences对象...
2019-04-10 10:41:00
167
转载 《(3)自定义View Layout过程 - 最易懂的自定义View原理系列》——笔记
layout过程根据View类型分2种情况单一的View 仅计算本身View的位置ViewGroup 计算自身View的位置,还需要确定子View在父容器中的位置即 遍历调用所有子元素的measure() &amp;amp;amp;amp; 各子元素再递归去执行该流程View树的位置是由包含的每个子视图的位置所决定故若想计算整个View树的位置,则需递归计算每个子视图的位置单一View的layout过程...
2019-04-10 10:40:54
131
转载 《自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法》--笔记
Android的animation由四种类型组成:alpha、scale、translate、rotatealpha 渐变透明度动画效果scale 渐变尺寸伸缩动画效果translate 画面转换位置移动动画效果rotate 画面转移旋转动画效果scale标签——调节尺寸1.scale标签是缩放动画,可以动态调控件尺寸的效果android:fromXScale 起始的X...
2019-04-10 10:40:46
145
转载 《自定义控件三部曲之动画篇(四)——ValueAnimator基本使用》---笔记
Android动画的类型总共有两种类型:View Animation(视图动画)和Property Animator(属性动画)其中:View Animation包括Tween Animation(补间动画)和Frame Animation(逐帧动画);引入Property Animator(属性动画)的原因1.Property Animator能实现补间动画无法实现的功能 比如:改...
2019-04-10 10:40:40
194
转载 《自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)》——笔记
本文为学习启航大神的笔记,请移步自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)自定义加速器public class LinearInterpolator implements Interpolator { public LinearInterpolator() { } public LinearInterpolator(Context context,Attr...
2019-04-10 10:40:35
128
转载 琐碎的点
1.onAttachedToWindow方法是在Act resume的时候被调用的,也就是act对应的window被添加的时候,且每个view只会被调用一次,父view的调用在前,不论view的visibility状态都会被调用,适合做些view铁定的初始化操作;2.onDetachedFromWindow方法实在Act destroy的时候被调用的,也就是act对应的window被删除的时候,...
2019-04-10 10:40:29
124
转载 《Android开发——View的生命周期总结》——笔记
转载自Android开发——View的生命周期总结View生命周期相关方法Constructors()View在代码中被创建是调用第一种构造方法,View从layout中加载出来时会调用第二种构造方法,其中XML中的属性也会被解析。onFinishInflate()该方法当View及其子View从XML文件中加载完成后触发调用。通常是在Activity中onCreate方法调用后调用。...
2019-04-10 10:40:22
159
转载 《理解Window和WindowManager》——笔记
本文为学习任玉刚的《Android开发艺术探索》第八章理解Window和WindowManager 所做的笔记。Window表示一个窗口的概念。它是一个抽象类,它的具体实现是PhoneWindow。创建一个Window是很简单的事,只需要通过WindowManager即可完成。WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerSer...
2019-04-10 10:40:16
121
转载 Python学习(一)
Python中文Python中默认的编码格式是ASCII格式,无法正确打印汉字可在文件开头加:#coding=utf-8 的=号两边不要空格Python标识符以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问不能用from xxx import *而导入。以双下划先开头的___foo代表类的私有成员,以双下划线开头和结尾的__foo__代表Python里特殊...
2019-04-10 10:40:11
348
转载 Python学习(二)---Python变量类型
Python变量类型变量存储在内存的值。这就意味着在创建变量时会在内存中开辟一个空间。变量赋值Python中的变量赋值不需要类型声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。多个变量赋值Python允许同时为多个变量赋值。例如:a = b = c = 1为多个对象指定多个变量a, b, c = 1, 2, “john”标准数据类型Numbers(数字)St...
2019-04-10 10:40:03
134
转载 设计模式之组合模式
运用面向对象的方式来处理树形结构是组合模式需要解决的问题。组合模式为处理树形结构提供了一种较为完美的解决方案,它描述了如何将容器和叶子进行递归组合,使得用户在使用时无须对它们进行区分,可以一致的对待容器和叶子。组合模式(Composite Pattern):组合多个对象形成树形结构以标识具有“整体-部分”关系的层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致...
2019-04-10 10:39:36
95
转载 Git&SVN教程
忽略某些文件可以在顶层工作目录中添加一个叫&amp;amp;quot;.gitignore&amp;amp;quot;的文件,来告诉Git系统要忽略掉哪些文件,如果想忽略规则只对特定的仓库起作用,可以把这些忽略规则写到仓库下.git/info/exclude文件中或写在Git配置变量core.excludesfile中指定的文件里。rebase假设现在基于远程分支&amp;amp;quot;origin&amp;amp;quot
2019-04-10 10:39:21
131
原创 RemoteViews介绍
RemoteViews的类继承关系RemoteView与View没有半毛钱关系,它是实现Parceable接口的Object子类RemoteViews本质RemoteViews本质上是为跨进程生成控件和修改控件属性提供一系列方法的一个类。...
2019-04-09 20:29:21
67
原创 Android路径相关的问题
内部存储内部存储在系统中较隐蔽,如果把文件放入内部存储,那么这个文件默认就只有自己的应用能访问到。访问内部存储相关的方法:1.Environment.getDataDirectory()2.getFilesDir().getAbsolutePath()3.getCacheDir().getAbsolutePath()4.getDir(“myFile”,MODE_PRIVATE).get...
2019-03-13 17:52:14
221
原创 Android换肤功能
换肤类型1.白天/黑夜主题切换 一般通过本地theme来做。2.多种主题切换 一般作为线上服务,皮肤资源在下载后进行使用。方案1.拦截系统创建View的过程,交由自己来创建2.收集需要换肤的View如何辨别那个View需要换肤?可以用自定义view属性来标记,需要的话,将其保存起来3.加载外部资源包,进行换肤...
2019-03-13 16:28:09
504
1
原创 ndk的Demo
Demo11.新建一个class,demo例:public class demo { public static native String getDemo();}2.获取classes文件点击Build中的Make Project后,在app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes找到对应...
2019-03-11 19:14:57
214
原创 Notification入门(一)---简易Demo
创建Notification ChannelNotificationChannel channel = new NotificationChannel(channelId,channelName,importance);NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFIC...
2019-02-13 20:08:27
447
原创 ViewPager的入门超简单小例子
工作要用到ViewPager,但是翻了《第一行代码》,竟然没有相关的内容,因此只能求助于度娘了,通过学习他人博客与视频,做出了第一个小demo,在这儿整理一下,旨在理清使用步骤。效果展示(图片作者Jan Erik Waider,侵删)相关布局ViewPager 是 android 扩展包 v4 包中的类activity_main.xml 只包含一个ViewPager控件...
2018-07-30 17:41:57
1106
原创 读取sdcard中音乐文件并使用RecyclerView进行展示
作为一名初入职场的菜鸟,刚开始学习android相关的知识,相信写出来的博客能够解决新手之所难,希望能给刚刚接触安卓的小伙伴们以帮助,该教程面对的人群,最好是对recyclerView有一些基本的了解,这方面知识网络上有很多资料。秀一秀对于界面的美观方面,我是已经非常满意了(理工男审美,哈哈),有美术功底的小伙伴可以设计一下重点:权限需要声明,并获得运行时权限Demo的实现--...
2018-07-27 14:56:36
1401
1
原创 1001 A+B Format (20)的Java解法
题干要求:Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).InputEach input file contain...
2018-07-05 19:51:14
631
原创 初入安卓---磨刀篇 Android Studio
常用快捷键小集:Ctrl+Shift+N 寻找文件的快捷键:输入文件名进行相应的查询Alt+Enter 引入相应的类Ctrl+O 重写方法由于 重写的方法的较多,所以最好选择方法按a->z排序,同时选择不再按照类进行区分,即选择下图中的第二个和第三个选项运行的一个小点:在连上手机测试之后,点击运行后,如果手机没有进行关闭,修改代码后...
2018-05-28 23:26:41
696
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人