天问

  • Blog
  • 热修复与动态加载
  • python爬虫
  • 专栏
    • 热修复与动态加载
    • NDK开发
    • 设计模式与架构
    • React Native
  • 好文转载
    • 计算机技术
    • 投资理财
    • 摄影与拍照技巧
  • 投稿
  • 关于本站及隐私政策
  • Github
安卓开发
安卓开发

你真的会用View的post方法吗

安卓中在非UI线程中需要更新界面的时候,我们往往使用Handler的post方法或者View的post方法(当然还可以使用Activity的runOnUiThread),当我们已经有一个view对象的时候往往会选择后者,即使用该view对象调用post方法。但是你真的了解View的post方法吗?有没有遇到过View的post的Runnable对象中的代码在某些机型上未被执行?遇到之后深入探究过是什么原因吗? 最近在开发智能无感知SDK的时候遇到过一个很奇怪的坑,这里简单交代下背景,用户点击登录按钮后智能无感知SD…

2019年1月12日 1条评论 993点热度 6人点赞 天问 阅读全文
安卓开发

【React Native】使用Code Push进行热更新

很多时候在实际开发中考虑使用RN的原因不仅仅是因为使用js开发能使得UI界面达到跨平台特性,还有一个重要原因就是热更新方便。对于需要经常使用热更新来发布新版本的App来说,这是RN的一个重大优势。因为RN的热更新非常方便。下面重点讲解下使用微软提供的CodePush来进行热更新。 CodePush是微软提供一个应用中心云服务平台(CodePush is an App Center cloud service),或许是考虑到RN的影响力,CodePush内部集成了对RN代码的热更新功能,即react-native-c…

2018年9月29日 0条评论 1750点热度 2人点赞 天问 阅读全文
安卓开发

【React Native】js端调用安卓原生模块及2端互相通信

前面React Native编译常见问题解决和官方demo分析一文介绍了FaceBook的RN官方demo,初步介绍了官方demo的一些重要的模块及其作用。这一节就来讲解下如何在js端调用安卓原生模块,以及js端和安卓原生模块之间的互相通信的几种方式和他们的特点。因为对于任何一个跨语言的开发框架来讲,在开发过程中2端之间的相互调用和消息传递是非常基础和也是非常重要的。就像NDK开发(java和c/c++互相调用)和WebView使用一样(java和js互相调用)。 这里以改造官方demo为例,因为自己接触RN是因为…

2018年9月22日 0条评论 1183点热度 0人点赞 天问 阅读全文
安卓开发

React Native编译常见问题解决和官方demo分析

React-Native是FaceBook在2015年推出的一个能够使用javascript语言开发原生App的框架(A framework for building native apps with React)。为何叫做React-Native呢?个人理解是因为该框架的js代码部分是基于React.js这个开源组件的,用React.js开发native应用(React Native lets you build mobile apps using JavaScript. It uses the same des…

2018年9月16日 0条评论 1088点热度 2人点赞 天问 阅读全文
安卓开发

【NDK开发之】SDK体积优化最佳实践

先交代下背景,我们的SDK是一个包含so的aar,主要包括java代码以及so 2大部分,基本不含资源文件。为了安全我们将SDK的核心逻辑放到so中用c/c++代码实现。但是由于我们是SDK,在给我们客户接入的过程中发现某些客户会非常在意体积。尽管实际上我们的体积相对竞品而言已经小了约1M了,但是某些客户仍然要求(期望但不强制)接入我们的SDK后体积增加不能超过500kb同时包含5种主流abi。所以为了给客户更好的用户体验,需要考虑优化SDK的体积,经过一番调研和实践之后减小的体积还是比较客观的。 首先需要明确的是…

2018年9月15日 0条评论 1078点热度 1人点赞 天问 阅读全文
安卓开发

安卓应用内多语言设置

安卓应用内多语言设置其实不难,但是适配存在很多坑,我把这类问题归属为难度不大,但需要经验的那一类问题,因为适配会存在很多坑,换而言之就是要把这个功能点做好如果是第一次接触肯定会踩很多坑浪费很多时间。网上关于这方面的介绍也很多,但是很多都是几年前的文章,实际实践中发现在某些机型上或许原先起作用的方法现在不起作用了,尤其是8.0系统。所以本博客简单做个记录。 实现多语言一般遵循如下三个步骤 创建各个语言的字符串资源文件 在需要进行语言展示的地方使用R.string.xxx(如果是xml中文字展示直接使用@string/…

2018年7月21日 0条评论 1184点热度 1人点赞 天问 阅读全文
安卓开发

安卓WebView使用与安全开发指南

在Android中WebView是一个非常重要的控件,虽然在很多情况下绝大部分开发者不会用到该控件,但个人觉得其重要程度丝毫不亚于TextView和RecycleView等我们常用控件,尤其是在hybrid开发中,作为高级开发工程师掌握WebView的使用以及安全问题是最基本的要求之一。 在绝大多数情况下,WebView不会仅仅只是用来进行UI展示,还会和用户进行UI交互同时响应用户的操作。这就涉及到web端的js代码和App端的java代码的相关通信了。 使用WebView有很多需要注意的一些细节,这些在前面讲解…

2018年6月2日 0条评论 419点热度 5人点赞 天问 阅读全文
安卓开发

使用Android Studio导出release的aar并进行混淆

通常情况aar是作为一个libary模块供主工程引用的,如果我们要导出aar也很容易,选中libary模块,然后点击AS上方菜单栏的build->make module,如图所示: 然后就会在libary模块的build/ouputs/aar/目录下生成编译好的aar,但是这样直接Make Module编译出来的aar默认是debug版本的,如果想要编译出release版本的aar需要在AS左下角的Build Variants中选择编译类型为release,如下所示: 然后Make Module之后outpu…

2018年4月29日 0条评论 2295点热度 4人点赞 天问 阅读全文
安卓开发

从System.loadLibrary()的执行流程看UnsatisfiedLinkError的几种情况

最近公司某部门的一款音乐产品反馈在某些用户的手机上启动有时候会出现崩溃,因为该产品接入了我们部门的云捕SDK,所以可以从后台看到崩溃后上传的日志,是加载某个so的时候出现了UnsatisfiedLinkError(强烈推荐开发者接入使用网易云捕SDK,http://crash.163.com/),然后我就在网上搜索了下UnsatisfiedLinkError相关的信息,发现网上包含了大量关于此异常的文章,在了解这个异常的过程中我意识到这个异常是一个对于上线产品而言出现概率较小(因为上线产品肯定是经过测试的,因此出现…

2017年12月9日 0条评论 1599点热度 5人点赞 天问 阅读全文
安卓开发

安卓ndk开发使用so注意事项集锦

今天在使用so库的时候出现了一个如下错误,简单记录下。 错误详情如图,出现java.lang.UnsatisfiedLinkError错误,这个错误一般是调用本地接口时会出现,在loadLibary时找不到so库而导致findLibrary returned null。这个原因就是so库未被打包到apk中,出现这个错误可以用压缩软件打开apk看下lib目录下是否存在要load的so文件。 出错场景: 自己的项目工程的目录结构如图: 其中的jni目录存放的是C++代码和android.mk/application.m…

2017年8月25日 0条评论 786点热度 3人点赞 天问 阅读全文
安卓开发

简单谈谈安卓中的窗口管理系统

安卓中的窗口管理系统是一个非常复杂的系统,涉及到的对象概念非常多,主要包括Activity,Window,DecorView,WindowManager,WindowManagerService等,这里不对窗口管理系统整体做分析,主要来看看Activity,Window,DecorView以及开发者在Activity中通过setContentView设置的xml文件中配置的ContentView(估且这么叫)之间的层级关系,因为这一块的内容既与开发相关又不太过于底层,但是又能帮助我们从宏观上了解安卓的窗口系统。 W…

2017年8月13日 0条评论 727点热度 4人点赞 天问 阅读全文

天问

追梦追自由,穷则独善其身,达则兼济天下

最新 热点 随机
最新 热点 随机
【插件化】从插件化看Activity的启动流程 你真的会用View的post方法吗 【设计模式之】适配器模式 【设计模式之】代理模式与动态代理技术(JDK自带与CGLIB)
超级易懂爬虫系列之爬取妹子图 python文件操作之目录和路径 使用Android Studio导出release的aar并进行混淆 【React Native】使用Code Push进行热更新
小伙伴们(排名不分先后)

尼古拉斯赵四

布兰柯基

 

COPYRIGHT © 2022 天问 ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang