50 Android Hack 读书笔记

Stella981
• 阅读 944

1、可以指定android:weightSum属性 2、使用include标签来应对变化 3、使用ViewStub标签延迟加载有可能不需要加载的数据 标签中可以指定inflateId属性 4、使用自定义ViewGroup,重写onMeasure、onLayout 5、使用Android的PreferenceCategory

6、使用TextSwitcher、ImageSwitcher来制作过渡动画 7、使用LayoutAnimathionController,使用View#setLayoutAnimation 8、使用Canvas手动绘制一些动画 9、使用NineOldAndroids制作幻灯片播放动画 10、使用一个Editext样式的图片作为Button的背景来弹出DatePicker让用户选择正确的日期 11、使用TextView#setText(Html.fromHtml())来自定义样式,使用Spannable来自定义TextView的显示样式 12、使用TextView的shadowColor属性来定义发光字 13、使用xml定义圆角矩形 14、使用View#post()方法在activity的onCreate中获取view的大小 15、处理视屏播放横屏问题 16、移除activity的背景和title来加快启动速度

     <?xml version="1.0" encoding="utf-8"?>
     <resources>
     <style name="Theme.NoBackground" parent="android:Theme"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@null</item>
      </style>
      </resources>

17、使用Toast#setGravity来设置toast的显示位置 18、使用Gallery做注册界面

19、使用proguard 来删除日志 # -assumenosideeffects 20、使用hierarchy viewer来移除不必要的布局

21、Modle-View-Presenter 模式 Activity通过接口和Presenter Modle通信 22、BroadCastReceiver与Activity的生命周期保持一致,onResume onPause 23、使用Android的libry工程 24、当后台任务比较简单并且你不必关系结果的时候才去用AsyncTask 25、使用SyncAdapter处理后台任务 26、使用ListView的setEmptyView 27、ListView#ViewHolder 28、ListView使用ViewType进行分组 29、使用代理与Adapter进行通信 30、使用ListView的HeadView 31、ViewPager处理屏幕旋转 32、为ListView设置choiceMode 33、使用AspectJ进行AOP编程,使用Cocos2d-x 34、使用Itoa将Object-c代码运行在Android上 35、将Scala运行在Android上 36、使用intent来激活系统组件,比如拍照、选择一张图片 37、用户反馈时上传用户设备信息 38、将MP3添加到media ContentProvider

39、为ActionBar添加刷新按钮 40、使用LIFO后台任务为listView加载图片 41、使用ORMLite来操作数据库 42、使用原生sql语句比ORM框架性能好,使用NDK扩展sqlite的操作 43、使用批量操作数据库接口 44、全屏应用注意版本兼容 45、操作SharePreference时如果无需返回值使用apply代替commit 46、使用Marven 47、使用jekins进行不同版本要求的构建

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Souleigh ✨ Souleigh ✨
3年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Stella981 Stella981
3年前
Service starting has been prevented by iaware or trustsbase sInfo ServiceInfo 解决方法
问题:ActivityManager:ServicestartinghasbeenpreventedbyiawareortrustsbasesInfoServiceInfo{c50ea35xxx.xxx.xxx.ServiceName}问题描述,该问题再华为部分手机升级到Android10.1之后,启动服务会
Wesley13 Wesley13
3年前
Android自定义ViewGroup:onMeasure与onLayout(1)
Android自定义ViewGroup:onMeasure与onLayout(1)Android自定义一个ViewGroup,需要重写ViewGrouo里面的两个最重要的回调函数onMeasure()与onLayout()。如果开发者自己摆脱Android为我们做好的几套布局(如常见的线1性布局、相对布局、帧布局等等),往底层实现vi
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Stella981 Stella981
3年前
Android ImageView 的scaletype属性详细介绍
android:scaleType是控制图片如何resized/moved来匹对ImageView的size,我们可以这样啦使用1.<ImageViewandroid:id"@id/img\_weibo\_img"2.android:layout\_width"fill\_parent"3.and