小tip

在命令行里面添加文本
按键盘i键转换到文本输入
输入 文本
输入完毕,按ESC 键,然后按:wq 保存后退出

友盟分享中qq/Qzone分享没有回调的解决方案

1.确保在分享所在Activity里实现onActivityresult方法,注意不能在fragment里实现

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}

2.确保在manifest xml中配置了正确的android:scheme <data android:scheme="tencent100424468" /> 注意这里的APPid必须和代码中配置的QQ APPid一致,并且注意tencent前缀不要删掉

Android Studio 中小写字符串快速转化为大写常量表示
选中小写字符串右键显示选中

Paste_Image.png
Paste_Image.png

就会生成如下代码:

public static final String EASY_AS = "easy as";

WebView与 JS 的交互中,由于 JavaBridge 并不在主线程中,我们需要主线程来操作 UI 。
项目中出现 bug,在原生控件点击调用 popupWindow显示后面的背景,而在webView 中调用JS 弹出popupWindow不显示背景,改为js方法在主线程中调用,bug解决。

Mac 用终端打开.bash_profile文件配置环境

open ~/.bash_profile

判断接口是否有效方法

Paste_Image.png

sign 是对参数的加密 ,前端跟后台商量好一个加密算法。参数传到后台,后台通过对参数进行加密获得一个 sign值,然后与前端给的 sign 做比对,相同的话就是正常请求,不同则为非法请求。

RelativeLayout 属性
// 相对于给定ID控件
android:layout_above 将该控件的底部置于给定ID的控件之上;
**android:layout_below ** 将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;

Mac下在command里面输入pwd是查看系统的根目录

java所说的代码稳定说的是Java运行时的虚拟机稳定

popupWindow中listView的条目高度显示不完全问题
在tiem的XML中设置只设置了条目的总高度,但是不识别,需要设置里面控件的高度,才能展示完全

打开github上的项目报错:Error:The SDK Build Tools revision (22.0.1) is too low for project ':app'. Minimum required is 25.0.
原因是下图红框里面默认的是2.0.+ ,gradle会默认加载最高版本,改为自己的gradle版本就好

Paste_Image.png

listview中Adapter的初始化一般应该放在联网之前,不要放在联网成功里面。
在Adapter中添加如下代码:

public void setData(List<data> list){   
 this.list=list;    
notifyDataSetChanged();
}

在联网成功拿到数据之后再调用此方法。
listView的条目点击事件也不宜放在联网成功里面也需要放在联网之前。否则来回切换页面且页面处于网络不好的时候,会报空指针的崩溃,listView的对象找不到。

studio调出lint去除无用资源

Paste_Image.png

singleTop与singleTask的区别
singleTop模式:如果发现有对应的Activity实例正位于栈顶,则重复利用,不再生成新的实例。如果栈顶没有,则重新生成实例。栈中有可能有多个相同的activity
singleTask模式:如果发现有对应的Activity实例,则使此Activity实例之上的其他Activity实例统统出栈,使此Activity实例成为栈顶对象,显示到幕前。栈中只有一个相同的activity

开发中单例经常需要持有Context对象,要保证Context和AppLication的生命周期一样,即context.getApplicationContext()

Studio删除项目中所有断点

Paste_Image.png

ScrollView里面嵌套的布局只能是一个布局,不可能是两个布局并存。

H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。现在是最普遍常用的。
项目中的七牛云播放器目前只支持H264,但是压缩视频的时候并没有采用这个格式,播放的时候就会出现只听见声音而看不画面的情况。

APP防止恶意注册
输入手机号点击按钮的时候在SP里面点击的 时间戳 做一次记录,
时间戳转化为年月日格式,通过如下代码实现:
public static String timeToData(long time) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String d = format.format(time);
return d;
}
然后进行下次点击是否在同一天的判断,当一天之内点击按钮的次数大于2次的时候就会弹出验证图片的提示框,图片的地址前段是固定的,就跟接口请求差不多,变化只是时间戳的参数变化,这样每次请求的图片就不一样了,图片是后台语言自动生成。

Glide的本地缓存地址
Glide源码里面的默认文件下载地址为**getCacheDir( ) **,
为手机内部存储,存储地址如下:
data/data/App的包名/cache/glide 默认是隐藏的,只有root之后才能看到

getExternalCacheDir( ) 为手机外部存储,存储地址如下:
Android/data/App的包名/cache/ 默认是显示的
如果我们想缓存图片等比较耗空间的文件,推荐放在getExternalCacheDir()所在的文件下面,这个文件和getCacheDir()很像,都可以放缓存文件,在APP被卸载的时候,都会被系统删除,而且缓存的内容对其他APP是相对私有的。

项目中layout-sw600dp文件夹的含义
small width 最小宽度为600dp的即视为平板

.9图的操作
左边 上边 拉伸区,画点
下边 右边 间隔区,画线,定义内容所在区域的上下左右空白区域大小

点9图四个位置的作用
左 2个点用来对应用高度等比例的拉伸(不影响右边的图标)
上 1个点对图标左边的位置进行拉伸
右 1条线对文字的高度的限制
下 1条线对文字的长度进行限制
要居中的时候设置padding为0

拥抱SVG:苦恼于图片适配 in Android?
Android对于 SVG 的支持是从 Android L 开始的,它的 SDK 里面加入了 VectorDrawable , AnimatedVectorDrawable 等类帮助我们构建 SVG 图形以及动画,并且你可以在 xml 文件里面直接使用 标签绘制 SVG 图像以及 标签为 SVG 图像分配动画。
个人感觉现在适用的是能用画笔画的图型,如:返回箭头
(http://blog.csdn.net/luoyanglizi/article/details/52589234)

推送跳转方法
点击推送进行跳转的时候,先跳到闪屏页,然后在闪屏页里面设置跳转两次,主页面在前,要进的页面在后。这样视觉上就像没有打开主页面似的,进入闪屏页之后直接就进了推送展示页

** Android Studio开发工具中,打开DDMS,具体的方式如图:**


** EventBus接收发来的信息的时候一定要记得注册!!!**
EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);

Paste_Image.png

设置按钮监听左边Edittext的时候这样设置:

textEditor.addTextChangedListener(new TextWatcher() {    
@Override   
 public void beforeTextChanged(CharSequence s, int start, int count, int after) {}   
 @Override  
  public void onTextChanged(CharSequence s, int start, int before, int count) {}   
 @Override   
 public void afterTextChanged(Editable s) {  
   sendBtn.setEnabled(!s.toString().isEmpty());           
});

在 drawable 文件中的图片获取 bitmap 对象

Resources res = getResources();

Bitmap bitmap = BitmapFactory.decodeResource(res, id);

id 为 R.drawable. 图片名称

** DP 与 SP 的区别:**

使用 sp 作为字体大小单位,会随着系统的字体大小改变
而 dp 作为单位则不会.

sp 除了受屏幕密度影响外,还受到用户的字体大小影响
通常情况下,建议使用 sp 来跟随用户字体大小设置。除非一些特殊的情况,不想跟随系统字体变化的,可以使用 dp.

** 布局优化**
1.RelativeLayout会让子View调用2次onMeasure,LinearLayout 在有weight时,也会调用子View2次onMeasure
2.RelativeLayout的子View如果高度和RelativeLayout不同,则会引发效率问题,当子View很复杂时,这个问题会更加严重。如果可以,尽量使用padding代替margin。
3.在不影响层级深度的情况下,使用LinearLayout和FrameLayout而不是RelativeLayout。
最后再思考一下文章开头那个矛盾的问题,为什么Google给开发者默认新建了个RelativeLayout,而自己却在DecorView中用了个LinearLayout。因为DecorView的层级深度是已知而且固定的,上面一个标题栏,下面一个内容栏。采用RelativeLayout并不会降低层级深度,所以此时在根节点上用LinearLayout是效率最高的。而之所以给开发者默认新建了个RelativeLayout是希望开发者能采用尽量少的View层级来表达布局以实现性能最优,因为复杂的View嵌套对性能的影响会更大一些。

4.能用两层LinearLayout,尽量用一个RelativeLayout,在时间上此时RelativeLayout耗时更小。另外LinearLayout慎用layout_weight,也将会增加一倍耗时操作。由于使用LinearLayout的layout_weight,大多数时间是不一样的,这会降低测量的速度。这只是一个如何合理使用Layout的案例,必要的时候,你要小心考虑是否用layout weight。总之减少层级结构,才是王道,让onMeasure做延迟加载,用viewStub,include等一些技巧。

** RelativeLayout与FrameLayout 的区别**
The RelativeLayout can use :

android:layout_toLeftOf="@id/some_view"
android:layout_toRightOf="@id/some_view"
android:layout_above="@id/some_view"
android:layout_below="@id/some_view"

to make sure views lineup correctly in relation to each other. FrameLayout is very similar except it's only using gravity to put display it's views (with no relation).
RelativeLayout更能精准摆放控件的位置,而FrameLayout 通过重心位置来摆放控件,FrameLayout相当于RelativeLayout的阉割版,比RelativeLayout更小巧。用的时候看需求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容