关键字:
  • Android ContentProvider 的实现步骤

    作者: king       发表时间: 2018-04-18 23:37
    1.为ContentProvider提供一个常量类 MyContentProviderMetaData.java public class MyContentProviderMetaData {    //URI的指定,此处的字符串必须和声明的authorities一致 public static final String AUTHORITIES = "com.zhuanghongji.app.MyContentProvider";    //数据库名称    public static final String DATABASE_NAME = "myContentProvider.db";    //数据库的版本    public static final int DATABASE_VERSION = 1;    //表名    public static final String USERS_TABLE_NAME = "user";       public static final cla...
  • Android开发规范

    作者: king       发表时间: 2018-04-06 14:55
    1 开发环境 1.1 IDE选择 1.1.1 Android Studio Android studio与gradle的组合是目前android开发IDE的首选。 1.1.2 Eclipse 在Android Studio普及之前,Android项目大部分使用Eclipse开发。目前也有部分开源项目、第三方库及一些公司以前的项目是用Eclipse开发的,因此熟悉Eclipse进行Android开发也是必要的。 1.2 编程语言 1.2.1 Java 基于JVM设计的编程语言,之前的Android开发官方语言。 1.2.2 Kotlin Google已宣布将Android开发的官方语言更换为Kotlin。 Kotlin的使用正在快速增长,一些大型互联网公司已经在使用。 Kotlin特性:类的属性、空指针安全、延迟初始化(lateinit)、Smart-Cast、类型推断、val定义常量、$符号格式化字符串、when取代了switch、循环中的区间概念、数据类、基类(Any)、单例类(objec...
  • 类的加载和初始化

    作者: king       发表时间: 2018-03-30 09:17
    类的加载和初始化   class Tester { static { System.out.println("Tester类的静态初始化块..."); } }   public class ClassLoaderTest { public static void main(String[] args) throws ClassNotFoundException{   ClassLoader cl = ClassLoader.getSystemClassLoader(); Class clazz =cl.loadClass("Tester");   // 加载类 不执行初始化,与Class.forName("Tester", false, cl)执行过程是一致(只是ClassLoader.loadClass()更底层) System.out.pr...
  • UnsupportedOperationException

    作者: king       发表时间: 2018-03-29 15:36
     Process: com.adehehe.heqia.client, PID: 13252                   java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x3   dimens.xml文件冲突
  • Android Broadcast要点

    作者: king       发表时间: 2018-03-28 23:18
    请描述一下Broadcast Receiver 有很多广播接收者 ,系统已经实现了. 广播分两种 有序广播和无序广播 指定接收者的广播,是不可以被拦截掉的     有序广播 priority属性控制优先级,值越大,优先级越高。 先收到广播的接收者,可以终止广播的后续传播。 abortBroadcast();   用于接收系统的广播通知, sd卡挂载,手机重启,广播通知,低电量,来电,来短信等 来获取短信到来的广播, 根据黑名单来判断是否拦截该短信. 画画板生成图片后,发送一个sd挂载的通知,通知系统的gallery去获取到新的图片 退出APP时发广播关闭所有的Activity   发送广播 Intent intent = new Intent( Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+Environment.getExternalSt...
  • Git的环境安装与使用

    作者: king       发表时间: 2018-03-25 00:37
    Git简介 Linus的第二个伟大作品 分布式,强调个体,速度快,灵活,已解决冲突,离线工作,每日工作备份 1 Git环境搭建 服务器基本搭建在Linux上。Windows上安装Git-1.7.9-preview20120201。 基本都是用默认选项,几个重要的界面选项如下: 使用默认的组件, 点击Next, 下一步 选择Git的命令行模式, 选择默认Git Bash 模式会创建一个快捷命令行, 点击Next下一步. Finish 安装完成, 桌面会生成一个快捷图标。   2 Git使用 2.1 Git常用命令 1. 创建git资源库 git init --bare 库名称   kl@KINGLONG ~ $ cd /e/WorkData/git kl@KINGLONG /e/WorkData/git $ git init --bare openprj Initialized empty Git repository...
  • Android Service要点

    作者: king       发表时间: 2018-03-24 22:11
    1. 什么是Service以及描述下它的生命周期;Service有哪些启动方法,有什么区别;怎样停用Service?  startService 生命周期onCreate()--->onStartCommand()--->onStart()--->onDestroy() 可以多次调用,不会重复创建,oncreate()只执行一次,会多次调用onStart 以start方式开启的服务也只能停止一次,多次调用stopservice()是无效的,只会调用一次onDestroyed。 以start方式开启的服务,调用者退出,服务仍然可以正常运行 不能调用服务中的方法 外部调用stopService可以停止服务,停止的时候调用onDestroy方法。 bindService 生命周期onCreate() --->onBind() -->onUnbind()---->onDestry()。 可以调用服务中的方法。 与绑定的Activity一同销毁,调用者在onDe...
  • Android Activity要点

    作者: king       发表时间: 2018-03-23 00:23
    Android Activity 1生命周期   (1)onCreate: 创建,进行Activity的一些初始化工作,比如使用setContentView加载布局,对一些控件和变量进行初始化等。此时Activity还在后台,不可见。 (2)onStart: 启动,Activity已经可见,但是还没出现在前台。在Activity的切换以及按Home键返回桌面再切回应用的过程中被多次调用。Bundle数据的恢复在onStart中进行更合适。 (3)onResume: 继续、重新开始,Activity已经出现在前台并且可见了,可以打开独占设备。 (4)onPause:pause暂停,要跳到另一个Activity或应用正常退出时执行。此时Activity在前台并可见,可以进行一些轻量级的工作。跳转Activity时当一个Activity执行完了onPause方法后另一个Activity才会启动。 (5)onStop:停止,Activity已经不可见,但还在内存中。可做一些资源的回收工作。 ...
  • Android插件技术:VirtualAPK

    作者: king       发表时间: 2018-03-22 22:02
    详细步骤: 一、 宿主工程 1.在工程根目录下build.gradle中添加 dependencies {  classpath 'com.didi.virtualapk:gradle:0.9.0' }   2.在App的build.gradle中顶部添加  apply plugin: 'com.didi.virtualapk.host'   3.在App的build.gradle中 compile 添加 dependencies {  compile 'com.didi.virtualapk:core:0.9.0' }   4.编写MyApp继承Application重写attachBaseContext方法中初始化插件引擎(别忘了在AndroidManifest.xml配置Application) ...
  • Android View 体系(2):Android UI布局常见问题

    作者: king       发表时间: 2018-03-03 16:56
    2 Android UI布局常见问题 2.0 Android中常用的五种布局:    FrameLayout(帧布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局),每种布局都有自己适合的方式,另外,这五个布局元素可以相互嵌套应用,做出美观的界面。      FrameLayout      从屏幕的左上角开始布局,叠加显示,应用:透明的多层布局。         LinearLayout        从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。         每一个LinearLayout里面又可分为垂直布局(android:orientation=&q...
  • Android View 体系(1):View和ViewGroup体系结构

    作者: king       发表时间: 2018-03-03 14:32
    1 View和ViewGroup体系结构 1.1 View体系概要 Android的UI界面由View和ViewGroup及其子类组合而成。 View是所有UI组件的父类,其子类称为组件(Widget)。 ViewGroup是布局管理器,本身继承自View类,其子类称为布局(Layout)。 View的子类体系结构如下图: 1.2 View子类介绍 1.2.1 ViewGroup ViewGroup的直接子类有:FrameLayout,LinearLayout,RelativeLayout,AbsoluteLayout,AdapterView,FragmentBreadCrumbs,SlidingDrawer ViewGroup派生出的间接子类有:AbsListView, AbsSpinner, AdapterViewAnimator, AdapterViewFlipper, AppWidgetHostView, CalendarView, DatePicker, DialerFilter...
  • Android IDE使用及工程管理

    作者: king       发表时间: 2018-03-01 21:44
    1 IDE 1.1 Android Studio 1.2 Gradle 1.3 Maven   2 工程管理 2.1 kotlin配置 2.1.1 在Project的build.gradle中配置kotlin: buildscript {     ext.kotlin_version = '1.1.2-4'     repositories {         maven { url 'https://maven.google.com' }         jcenter()     }     depende...
  • Android WebView onPageFinished解决返回上一页时标题不刷新

    作者: king       发表时间: 2017-10-22 14:09
    WebChromeClient的onReceivedTitle中刷新标题 webView.setWebChromeClient(new WebChromeClient() { public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); tvTitle.setText(title); } }); 调用goback()返回上一页时,上述方法未能调用到。使用以下方法: WebChromeClient的onPageFinished中刷新标题 webView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { tvTitle.setText(view.getTitle()); } ...
  • WebView中实现javaScript和Android互调

    作者: king       发表时间: 2017-10-22 13:41
    关键代码: webview.addJavascriptInterface(new MyJavaScript(this), "AndroidNative"); <a href='javascript:AndroidNative.telephone("13816978870")'> webview.loadUrl("javascript:**");   定义@JavascriptInterface 接口的类   public class AndroidNative {      Context context;     public  AndroidNative(Context context) {          this.context =...
  • Android Bitmap尺寸压缩和质量压缩

    作者: king       发表时间: 2017-10-22 12:04
    Bitmap尺寸压缩     在图片显示或处理时,经常需要创建Bitmap对象。由于Bitmap占用内存是跟图片的像素点数量直接相关的,因此图片尺寸的大小对内存的占用有很大的影响。如2560x3840尺寸的照片,如果ARGB_4444格式直接加载到Bitmap,占用内存中2560x3840x2/(1024x1024)=18.75M,如果以ARGB_8888格式直接加载则占用内存37M。Android虚拟机默认分配给应用的内存为16M,这样很容易就发生OOM(OutOfMemory)错误。     在满足显示要求的前提下,应尽量减小Bitmap的宽高尺寸。     从图片文件读取为Bitmap对象,可根据需要显示的大小,计算出采样率,然后创建出合适尺寸的Bitmap对象,尽可能减小对内存的占用。      //*      * 根据采样率从文件获取位图图片      * ...