{"id":338,"date":"2025-03-31T18:00:15","date_gmt":"2025-03-31T10:00:15","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/"},"modified":"2025-03-31T18:00:15","modified_gmt":"2025-03-31T10:00:15","slug":"android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/","title":{"rendered":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"htmledit_views\" id=\"content_views\">\n<div style=\"font-size:16px;\">\n<p align=\"center\">\n<p>\n    \u65b0\u5efa\u4e00\u4e2aAndroid\u9879\u76ee\uff1a\n   <\/p>\n<p>\n    \u5b8c\u6210\u4e0b\u9762\u6b65\u9aa4\u540e\uff0c\u5b89\u88c5\u5230\u624b\u673a\uff0c\u5e76\u8bbe\u7f6e\u52a8\u6001\u58c1\u7eb8\u624d\u80fd\u770b\u5230\u6548\u679c\u3002\n   <\/p>\n<p>\n    res\/xml\/cube1.xml\n   <\/p>\n<p>\n    AndroidManifest.xml\n   <\/p>\n<p>\n    CubeWallpaper1.java\n   <\/p>\n<p>\n    package xiaoma.cube1;\n   <\/p>\n<p>\n    import android.graphics.Canvas;\n   <\/p>\n<p>\n    import android.graphics.Paint;\n   <\/p>\n<p>\n    import android.os.Handler;\n   <\/p>\n<p>\n    import android.os.SystemClock;\n   <\/p>\n<p>\n    import android.service.wallpaper.WallpaperService;\n   <\/p>\n<p>\n    import android.view.MotionEvent;\n   <\/p>\n<p>\n    import android.view.SurfaceHolder;\n   <\/p>\n<p>\n    public class CubeWallpaper1 extends WallpaperService {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    \/*\u5e38\u7528\u7684\u90fd\u662f\u8fd9\u6837\u7684\uff0c\u7528\u4e00\u4e2ahandler\u6765\u52a8\u6001\u7684\u53bb\u5237\u65b0UI\uff0c\u5bf9\u5427\uff1f\u731c\u7684\uff0c\u770b\u4e0b\u9762\u4ee3\u7801\u5230\u5e95\u662f\u4e0d\u662f*\/\n   <\/p>\n<p>\n    private final Handler mHandler = new Handler();\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u8fd9\u4e2a\u65b9\u6cd5\u4e0eActivity\u91cc\u9762\u7684\u4e00\u6837\uff0c\u5f53\u8fd9\u4e2a\u7c7b\u7684\u670d\u52a1\u88ab\u7b2c\u4e00\u6b21\u521b\u5efa\u65f6\n   <\/p>\n<p>\n    * \u8c03\u7528\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u53ea\u8c03\u7528\u4e00\u6b21..\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onCreate() {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onCreate();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u4e0e\u4e0a\u9762\u53cd\u7684\uff0c\u9500\u6bc1\u65f6\u8c03\u7528\uff0c\u8fd9\u4e2a\u731c\u4e0b\uff0c\n   <\/p>\n<p>\n    * \u4e0d\u61c2\u4e86\u67e5\u6587\u6863\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onDestroy() {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onDestroy();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u8fd9\u4e2a\u65b9\u6cd5\u5728\u7c7b\u6ce8\u91ca\u4e2d\u5199\u660e\u4e86\n   <\/p>\n<p>\n    * implementing onCreateEngine() to return a new instance of your engine\n   <\/p>\n<p>\n    * \u5fc5\u987b\u5b9e\u73b0\u8fd9\u4e2a\u65b9\u6cd5\u6765\u8fd4\u56de\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u5f15\u64ce\u7684\u4e00\u4e2a\u5b9e\u4f8b\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public Engine onCreateEngine() {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    return new CubeEngine();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    *\n   <\/p>\n<p>\n    * @Title: CubeWallpaper1.java\n   <\/p>\n<p>\n    * @Package cube1\n   <\/p>\n<p>\n    * @Description: \u81ea\u5b9a\u4e49\u5f15\u64ce\u7c7b\n   <\/p>\n<p>\n    * @author XiaoMa\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    class CubeEngine extends Engine {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    private final Paint mPaint = new Paint();\n   <\/p>\n<p>\n    private float mOffset;\n   <\/p>\n<p>\n    \/*\u7528\u6237\u89e6\u6478\u4f4d\u7f6e*\/\n   <\/p>\n<p>\n    private float mTouchX = -1;\n   <\/p>\n<p>\n    private float mTouchY = -1;\n   <\/p>\n<p>\n    private long mStartTime;\n   <\/p>\n<p>\n    \/*\u5c4f\u5e55\u4e2d\u5fc3\u5750\u6807\uff0c\u8bb0\u4e0b\uff0c\u662f\u4e2d\u5fc3\u4e0d\u662f\u539f\u5fc3(0\uff0c0)*\/\n   <\/p>\n<p>\n    private float mCenterX;\n   <\/p>\n<p>\n    private float mCenterY;\n   <\/p>\n<p>\n    private boolean mVisible;\n   <\/p>\n<p>\n    private final Runnable mDrawCube = new Runnable()\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    public void run()\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    drawFrame();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    };\n   <\/p>\n<p>\n    CubeEngine()\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    \/*\u4e0b\u9762\u8fd9\u51e0\u884c\u5c31\u4e3a\u4e86\u5728\u5c4f\u5e55\u4e2d\u753b\u7acb\u65b9\u4f53\u7684\u7ebf\u6761\u800c\u505a\u51c6\u5907*\/\n   <\/p>\n<p>\n    final Paint paint = mPaint;\n   <\/p>\n<p>\n    paint.setColor(0xffffcc66);\/\/\u753b\u7b14\u989c\u8272\n   <\/p>\n<p>\n    paint.setAntiAlias(true);\/\/\u6297\u952f\u9f7f\n   <\/p>\n<p>\n    paint.setStrokeWidth(2);\/\/\u7ebf\u6761\u7c97\u7ec6\uff0c\u731c\u7684\uff0c\u4e0d\u77e5\u9053\u5bf9\u4e0d\u5bf9\n   <\/p>\n<p>\n    paint.setStrokeCap(Paint.Cap.ROUND);\n   <\/p>\n<p>\n    paint.setTextSize(22);\n   <\/p>\n<p>\n    paint.setStyle(Paint.Style.STROKE);\n   <\/p>\n<p>\n    \/\/\u7cfb\u7edf\u542f\u52a8\u5b8c\u4e4b\u540e\uff0c\u5f00\u59cb\u7ed8\u5236\u58c1\u7eb8\u7684\u65f6\u95f4\uff0c\u8fd9\u4e2a\u65f6\u95f4\u91cc\u9762\u5305\u542b\u6709\u7cfb\u7edf\u7761\u7720\u65f6\u95f4\n   <\/p>\n<p>\n    mStartTime = SystemClock.elapsedRealtime();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u5927\u5bb6\u53d1\u73b0\u8fd9\u4e2aonCreate\u4e0eActivity\u7684\u65b9\u6cd5\u6709\u4ec0\u4e48\u4e0d\u540c\u4e86\u5427\uff1f\n   <\/p>\n<p>\n    * \u8001\u89c4\u77e9\u7684\uff0c\u8fd8\u662f\u5728\u521d\u59cb\u5316\u58c1\u7eb8\u5f15\u64ce\u7684\u65f6\u5019\u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u5e76\u8bbe\u7f6e\u89e6\n   <\/p>\n<p>\n    * \u5c4f\u4e8b\u4ef6\u4e3a\u53ef\u7528\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onCreate(SurfaceHolder surfaceHolder)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onCreate(surfaceHolder);\n   <\/p>\n<p>\n    setTouchEventsEnabled(true);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onDestroy()\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onDestroy();\n   <\/p>\n<p>\n    mHandler.removeCallbacks(mDrawCube);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u7cfb\u7edf\u58c1\u7eb8\u72b6\u6001\u6539\u53d8\u65f6\u4f1a\u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u5982\uff1a\n   <\/p>\n<p>\n    * \u58c1\u7eb8\u7531\u9690\u85cf\u8f6c\u6362\u4e3a\u663e\u793a\u72b6\u6001\u65f6\u4f1a\u8c03\u7528\u8fd9\u4e2a\u65b9\u6cd5\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onVisibilityChanged(boolean visible)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    mVisible = visible;\n   <\/p>\n<p>\n    \/*\u4e0b\u9762\u8fd9\u4e2a\u5224\u65ad\u597d\u73a9\uff0c\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u5c4f\u5e55\u58c1\u7eb8\u72b6\u6001\u8f6c\u4e3a\u663e\u5f0f\u65f6\u91cd\u65b0\u7ed8\u5236\u58c1\u7eb8\uff0c\u5426\u5219\u9ed1\u5c4f\u5e55\uff0c\u9690\u85cf\u5c31\u53ef\u4ee5*\/\n   <\/p>\n<p>\n    if (visible)\n   <\/p>\n<p>\n    drawFrame();\n   <\/p>\n<p>\n    else\n   <\/p>\n<p>\n    mHandler.removeCallbacks(mDrawCube);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onSurfaceChanged(holder, format, width, height);\n   <\/p>\n<p>\n    \/\/\u4e0b\u9762\u662f\u6765\u4fdd\u5b58\u5c4f\u5e55\u663e\u793a\u7acb\u65b9\u4f53\u7684\uff0c\u4e5f\u5c31\u662f\u4f60\u80fd\u770b\u5230\u7684\u6b63\u9762\u56fe\u7684\u4e2d\u5fc3\u4f4d\u7f6e\n   <\/p>\n<p>\n    mCenterX = width \/ 2.0f;\n   <\/p>\n<p>\n    mCenterY = height \/ 2.0f;\n   <\/p>\n<p>\n    drawFrame();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u4e0b\u9762\u4e24\u4e2a\u65b9\u6cd5\u662f\u4e3a\u4e86\u65b9\u4fbf\u8c03\u7528SurfaceHolder\u4ea4\u4e92\u6765\u91cd\u5199\u7684\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onSurfaceCreated(SurfaceHolder holder)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onSurfaceCreated(holder);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onSurfaceDestroyed(SurfaceHolder holder)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    super.onSurfaceDestroyed(holder);\n   <\/p>\n<p>\n    mVisible = false;\n   <\/p>\n<p>\n    mHandler.removeCallbacks(mDrawCube);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/**\n   <\/p>\n<p>\n    * \u5f53\u624b\u52a8\u58c1\u7eb8\u65f6\u6839\u636e\u504f\u79fb\u91cf\u91cd\u7ed8\u58c1\u7eb8\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onOffsetsChanged(float xOffset, float yOffset, float xStep,\n   <\/p>\n<p>\n    float yStep, int xPixels, int yPixels)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    mOffset = xOffset;\n   <\/p>\n<p>\n    drawFrame();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    * \u5728\u8fd9\u4e2a\u5730\u65b9\u4fdd\u5b58\u89e6\u6478\u7684\u4f4d\u7f6e\uff0c\u6211\u4eec\u4f1a\u5728\u7ed8\u5236\u58c1\u7eb8\u7684\u65f6\u5019\u4f7f\u7528\u89e6\u6478\u503c\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    @Override\n   <\/p>\n<p>\n    public void onTouchEvent(MotionEvent event)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    if (event.getAction() == MotionEvent.ACTION_MOVE)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    mTouchX = event.getX();\n   <\/p>\n<p>\n    mTouchY = event.getY();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    else\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    mTouchX = -1;\n   <\/p>\n<p>\n    mTouchY = -1;\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    super.onTouchEvent(event);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    * \u7ed8\u5236\u7acb\u65b9\u4f53\u65b9\u6cd5\u5b9e\u73b0\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    void drawFrame()\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    final SurfaceHolder holder = getSurfaceHolder();\n   <\/p>\n<p>\n    Canvas c = null;\n   <\/p>\n<p>\n    try\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    c = holder.lockCanvas();\n   <\/p>\n<p>\n    if (c != null)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    drawCube(c);\n   <\/p>\n<p>\n    drawTouchPoint(c);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    finally\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    if (c != null)\n   <\/p>\n<p>\n    holder.unlockCanvasAndPost(c);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/\/ \u5728\u6307\u5b9a\u65f6\u95f4\u91cc\u91cd\u7ed8\u5236\uff0c\u8fd9\u4e2a\u5730\u65b9\u5927\u5bb6\u53ef\u4ee5\u770b\u6548\u679c\u56fe\uff0c\u5982\u679c\u4f60\u62d6\u52a8\u8fc7\u5feb\u7684\u8bdd\uff0c\u7acb\u65b9\u4f53\n   <\/p>\n<p>\n    \/\/\u6bcf\u4e2a\u9876\u70b9\u4e4b\u95f4\u4f1a\u6709\u4e00\u4e2a\u77ed\u6682\u7684\u672a\u8fde\u63a5\u5ef6\u8fdf\uff0c\u5c31\u662f\u5728\u8fd9\u4e2a\u5730\u65b9\u4f7f\u7528\u4e86\u5ef6\u8fdf\u6765\u7ed8\u5236\u7684\n   <\/p>\n<p>\n    mHandler.removeCallbacks(mDrawCube);\n   <\/p>\n<p>\n    if (mVisible)\n   <\/p>\n<p>\n    mHandler.postDelayed(mDrawCube, 1000 \/ 25);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    * \u8fd9\u4e2a\u5730\u65b9\u662f\u4ee5\u7acb\u65b9\u4f53\u67d0\u4e2a\u9876\u70b9\u4e3a\u8d77\u59cb\u7aef\uff0c\u7ed8\u5236\u4e09\u6761\u7ebf\n   <\/p>\n<p>\n    * \u4e00\u5806\u6570\u5b57\uff0c\u770b\u7740\u597d\u6655\n   <\/p>\n<p>\n    * \u987a\u4fbf\u8d34\u5728\u8fd9\u4e2aDEMO\u91cc\u9762\u7528\u5230\u7684\u57fa\u672c\u7684\u7ed8\u5236\uff0c\u5982\u4e0b\uff1a\n   <\/p>\n<p>\n    * graphics.Canvas\u6709\u56db\u79cd\u753b\u77e9\u5f62\u7684\u65b9\u6cd5\u3002\n   <\/p>\n<p>\n    canvas.drawRect(new RectF(10, 10, 300, 100), paint);\n   <\/p>\n<p>\n    canvas.drawRect(10, 150, 300, 200, paint);\n   <\/p>\n<p>\n    canvas.drawRect(new Rect(10, 250, 300, 300), paint);\n   <\/p>\n<p>\n    \u7b2c\u56db\u79cd\uff1a\u753b\u5706\u89d2\u7684\u77e9\u5f62\n   <\/p>\n<p>\n    canvas.drawRoundRect(new RectF(10, 350, 300, 450), 10, 10, paint);\n   <\/p>\n<p>\n    \u7b2c\u4e8c\u4e2a\u548c\u7b2c\u4e09\u4e2a\u53c2\u6570\u4e3a\u5706\u89d2\u7684\u5bbd\u9ad8\u3002\n   <\/p>\n<p>\n    \u6709\u5174\u8da3\u7684\u670b\u53cb\u53ef\u4ee5\u6539\u4e0b\u4e0b\u9762\u8fd9\u4e9b\u4e1c\u897f\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    void drawCube(Canvas c)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    c.save();\n   <\/p>\n<p>\n    c.translate(mCenterX, mCenterY);\n   <\/p>\n<p>\n    c.drawColor(0xffFF0000);\n   <\/p>\n<p>\n    drawLine(c, -400, -400, -400, 400, -400, -400);\n   <\/p>\n<p>\n    drawLine(c, 400, -400, -400, 400, 400, -400);\n   <\/p>\n<p>\n    drawLine(c, 400, 400, -400, -400, 400, -400);\n   <\/p>\n<p>\n    drawLine(c, -400, 400, -400, -400, -400, -400);\n   <\/p>\n<p>\n    drawLine(c, -400, -400, 400, 400, -400, 400);\n   <\/p>\n<p>\n    drawLine(c, 400, -400, 400, 400, 400, 400);\n   <\/p>\n<p>\n    drawLine(c, 400, 400, 400, -400, 400, 400);\n   <\/p>\n<p>\n    drawLine(c, -400, 400, 400, -400, -400, 400);\n   <\/p>\n<p>\n    drawLine(c, -400, -400, 400, -400, -400, -400);\n   <\/p>\n<p>\n    drawLine(c, 400, -400, 400, 400, -400, -400);\n   <\/p>\n<p>\n    drawLine(c, 400, 400, 400, 400, 400, -400);\n   <\/p>\n<p>\n    drawLine(c, -400, 400, 400, -400, 400, -400);\n   <\/p>\n<p>\n    c.restore();\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    * \u5728\u5c4f\u5e55\u4e2d\u7ed8\u5236\u4e09\u7ef4\u7a7a\u95f4\u7684\u7ebf\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    void drawLine(Canvas c, int x1, int y1, int z1, int x2, int y2, int z2) {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    *\u56e0\u4e3a\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u58c1\u7eb8\u662f\u624b\u673a\u542f\u52a8\u5b8c\u6210\u4e4b\u540e\u5c31\u5df2\u7ecf\u5f00\u59cb\u7ed8\u5236\u7684\uff0c\u4e00\u822c\u53d6\u65f6\u95f4\u4ec0\u4e48\u7684\n   <\/p>\n<p>\n    *\u6211\u4eec\u90fd\u7528Timer System.currentTimeMillis() Calendar\u6765\u53d6\n   <\/p>\n<p>\n    *\u8fd9\u4e2a\u5730\u65b9\u53d6\u7cfb\u7edf\u7ea7\u542f\u52a8\u65f6\u95f4\u7b49\u7684\uff0c\u8bb0\u4f4f\u8fd9\u4e2a\u7c7b\uff0cSystemClock\uff0c\u65b9\u6cd5\u81ea\u5df1\u67e5\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    long now = SystemClock.elapsedRealtime();\n   <\/p>\n<p>\n    \/*\u53d6\u5f97\u4e09\u7ef4\u5750\u6807\u8f74\u7684\u65cb\u8f6c\u503c*\/\n   <\/p>\n<p>\n    float xrot = ((float) (now &#8211; mStartTime)) \/ 1000;\n   <\/p>\n<p>\n    float yrot = (0.5f &#8211; mOffset) * 2.0f;\n   <\/p>\n<p>\n    float zrot = 0;\n   <\/p>\n<p>\n    \/\/ rotation around X-axis \uff1f\uff1f\uff1f\n   <\/p>\n<p>\n    float newy1 = (float) (Math.sin(xrot) * z1 + Math.cos(xrot) * y1);\n   <\/p>\n<p>\n    float newy2 = (float) (Math.sin(xrot) * z2 + Math.cos(xrot) * y2);\n   <\/p>\n<p>\n    float newz1 = (float) (Math.cos(xrot) * z1 &#8211; Math.sin(xrot) * y1);\n   <\/p>\n<p>\n    float newz2 = (float) (Math.cos(xrot) * z2 &#8211; Math.sin(xrot) * y2);\n   <\/p>\n<p>\n    \/\/ rotation around Y-axis \uff1f\uff1f\uff1f\n   <\/p>\n<p>\n    float newx1 = (float) (Math.sin(yrot) * newz1 + Math.cos(yrot) * x1);\n   <\/p>\n<p>\n    float newx2 = (float) (Math.sin(yrot) * newz2 + Math.cos(yrot) * x2);\n   <\/p>\n<p>\n    newz1 = (float) (Math.cos(yrot) * newz1 &#8211; Math.sin(yrot) * x1);\n   <\/p>\n<p>\n    newz2 = (float) (Math.cos(yrot) * newz2 &#8211; Math.sin(yrot) * x2);\n   <\/p>\n<p>\n    \/\/ 3D-to-2D projection \uff1f\uff1f\uff1f\n   <\/p>\n<p>\n    float startX = newx1 \/ (4 &#8211; newz1 \/ 400);\n   <\/p>\n<p>\n    float startY = newy1 \/ (4 &#8211; newz1 \/ 400);\n   <\/p>\n<p>\n    float stopX = newx2 \/ (4 &#8211; newz2 \/ 400);\n   <\/p>\n<p>\n    float stopY = newy2 \/ (4 &#8211; newz2 \/ 400);\n   <\/p>\n<p>\n    c.drawLine(startX, startY, stopX, stopY, mPaint);\n   <\/p>\n<p>\n    c.drawText(&#8220;\u738b\u6708\u661f&#8221;, startX, startY, mPaint);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \/*\n   <\/p>\n<p>\n    * \u6309\u4f4d\u5c4f\u5e55\u624b\u52a8\u65f6\u7ed8\u5236\u4e00\u4e2a\u767d\u8272\u7684\u5708\n   <\/p>\n<p>\n    *\/\n   <\/p>\n<p>\n    void drawTouchPoint(Canvas c)\n   <\/p>\n<p>\n    {<br \/>\n    <!-- -->\n   <\/p>\n<p>\n    if (mTouchX &gt;= 0 &amp;&amp; mTouchY &gt;= 0)\n   <\/p>\n<p>\n    c.drawCircle(mTouchX, mTouchY, 80, mPaint);\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    }\n   <\/p>\n<p>\n    \u738b\u6708\u661f\u63a8\u8350\n   <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u65b0\u5efa\u4e00\u4e2aAndroid\u9879\u76ee\uff1a \u5b8c\u6210\u4e0b\u9762\u6b65\u9aa4\u540e\uff0c\u5b89\u88c5\u5230\u624b\u673a\uff0c\u5e76\u8bbe\u7f6e\u52a8\u6001\u58c1\u7eb8\u624d\u80fd\u770b\u5230\u6548\u679c\u3002 res\/xml\/cub [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-8"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ceandroid\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u65b0\u5efa\u4e00\u4e2aAndroid\u9879\u76ee\uff1a \u5b8c\u6210\u4e0b\u9762\u6b65\u9aa4\u540e\uff0c\u5b89\u88c5\u5230\u624b\u673a\uff0c\u5e76\u8bbe\u7f6e\u52a8\u6001\u58c1\u7eb8\u624d\u80fd\u770b\u5230\u6548\u679c\u3002 res\/xml\/cub [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ceandroid\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-31T10:00:15+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\",\"datePublished\":\"2025-03-31T10:00:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/\"},\"wordCount\":613,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u52a8\u6001\u58c1\u7eb8\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/\",\"name\":\"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-03-31T10:00:15+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wunen.com\/#website\",\"url\":\"https:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"https:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ceandroid\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\/","og_locale":"zh_CN","og_type":"article","og_title":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u65b0\u5efa\u4e00\u4e2aAndroid\u9879\u76ee\uff1a \u5b8c\u6210\u4e0b\u9762\u6b65\u9aa4\u540e\uff0c\u5b89\u88c5\u5230\u624b\u673a\uff0c\u5e76\u8bbe\u7f6e\u52a8\u6001\u58c1\u7eb8\u624d\u80fd\u770b\u5230\u6548\u679c\u3002 res\/xml\/cub [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ceandroid\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-03-31T10:00:15+00:00","og_image":[{"width":260,"height":180,"url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1","datePublished":"2025-03-31T10:00:15+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/"},"wordCount":613,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u52a8\u6001\u58c1\u7eb8"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/","name":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1 - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"https:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-03-31T10:00:15+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"http:\/\/www.wunen.com\/index.php\/2025\/03\/31\/android%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%95%e6%93%8eandroid%e5%8a%a8%e6%80%81%e5%a3%81%e7%ba%b8%e5%bc%80%e5%8f%91\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"android\u52a8\u6001\u58c1\u7eb8\u5f15\u64ce,Android\u52a8\u6001\u58c1\u7eb8\u5f00\u53d1"}]},{"@type":"WebSite","@id":"https:\/\/www.wunen.com\/#website","url":"https:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"https:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=338"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/338\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=338"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}