Hai Zhou

31 papers A* 2A 1B 1Journal 16Unranked 6
YearRankTypeTitle / Venue / Authors
2026 A* conf
AAAI
Yiran Yang, Zhaowei Liu, Yuan Yuan, Yukun Song, Xiong Ma, Yinghao Song, Xiangji Zeng, Lu Sun, Yulu Wang, Hai Zhou, Shuai Cui, Zhaohan Gong, Jiefei Zhang
2026 J jnl
CoRR
Yiran Yang, Zhaowei Liu, Yuan Yuan, Yukun Song, Xiong Ma, Yinghao Song, Xiangji Zeng, Lu Sun, Yulu Wang, Hai Zhou, Shuai Cui, Zhaohan Gong, Jiefei Zhang
2025 conf
EMNLP (Findings)
Yinghao Song, Xiangji Zeng, Shuai Cui, Lu Sun, Zhaowei Liu, Yuan Yuan, Yulu Wang, Hai Zhou, Zhaohan Gong
2025 J jnl
Microelectron. J.
Xiaofeng Gu, Hai Zhou, Yang Qiao, Xiaoyu Zhong, Zhiguo Yu
2025 J jnl
IEEE Access
Hai Zhou, Haojie Zou, Pinxi Zhou, Yue Shen, Di Li, Wei Li
2025 J jnl
IEEE Trans. Multim.
Zhe Xue, Yawen Li, Zhongchao Guan, Wenling Li, MeiYu Liang, Hai Zhou
2024 J jnl
Sensors
Honghong Wu, Guoqing Pei, Dongya Chu, Yuting Wu, Han Gu, Siyu Wu, Chenzhuo Wang, Wanlai Zhu, Hai Zhou, Dongxia Hu
2023 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Jian-Feng Qian, Benito Sanz-Izquierdo, Steven Gao, Hanyang Wang, Hai Zhou, Huiliang Xu
2023 A* conf
ACM Multimedia
Hai Zhou, Zhe Xue, Ying Liu, Boang Li, Junping Du, MeiYu Liang, Yuankai Qi
2023 B conf
ICMR
Yu Zang, Zhe Xue, Shilong Ou, Yunfei Long, Hai Zhou, Junping Du
2023 A conf
ICME
Hai Zhou, Zhe Xue, Ying Liu, Boang Li, Junping Du, MeiYu Liang
2022 J jnl
IEEE Access
Lyuwei Chen, Yi Huang, Hanyang Wang, Hai Zhou, Kexin Liu
2021 conf
ICMTEL (2)
Zijin Xiao, Ying Li, Hai Zhou
2021 conf
ICMTEL (2)
Zijin Xiao, Ying Li, Hai Zhou
2020 J jnl
Genom. Proteom. Bioinform.
Liya Zhu, Han Cheng, Guoqing Peng, Shuansuo Wang, Zhiguo Zhang, Erdong Ni, Xiangdong Fu, Chuxiong Zhuang, Zexian Liu, Hai Zhou
2018 J jnl
IEEE Access
Manoj Stanley, Yi Huang, Hanyang Wang, Hai Zhou, Ahmed Al-Tahmeesschi, Sumin D. Joseph
2018 conf
ROBIO
Yuchen Wang, Peng Wang, Changchun Liu, Gaoming Hao, Zhao Xiong, Xusong Quan, Xiaodong Yuan, Hai Zhou
2018 J jnl
Int. J. Robotics Autom.
Yong Zeng, Yang Chen, Yakun Zhang, Hai Zhou, Chunwei Zhang
2016 J jnl
Sensors
Hai Zhou, Yuanming Wu, Li Feng, Daolei Liu
2016 ch.
Encyclopedia of Algorithms
Hai Zhou
2016 ch.
Encyclopedia of Algorithms
Hai Zhou
2016 conf
ROBIO
Wanyi Li, Yongkang Luo, Peng Wang, Zhengke Qin, Hai Zhou, Hong Qiao
2016 ch.
Encyclopedia of Algorithms
Hai Zhou
2016 ch.
Encyclopedia of Algorithms
Hai Zhou
2016 J jnl
Int. J. Robotics Autom.
Yong Zeng, Hai Zhou, Chunwei Zhang, Ruhong Ma, Lei Zheng
2014 conf
BMEI
Shan Wei, Hai Zhou, Dongmei Wang, Xiang Li, Chengtao Wang
2011 J jnl
IEEE Commun. Mag.
Hai Zhou, Kevin Sparks, Nandu Gopalakrishnan, Pantelis Monogioudis, Francis Dominique, Peter Busschbach, Jim Seymour
2009 J jnl
IEEE Trans Autom. Sci. Eng.
Teruyuki Izumi, Hai Zhou, Zuowei Li
2008 ch.
Handbook of Algorithms for Physical Design Automation
Dinesh P. Mehta, Hai Zhou
1999 J jnl
Artif. Life Robotics
Teruyuki Izumi, Hai Zhou
1999 J jnl
J. Robotics Mechatronics
Teruyuki Izumi, Hai Zhou
redb/extractors/decompiler/apk/library_filter.py
← Index redb/extractors/decompiler/apk/library_filter.py python
"""Package-based library filtering for APK DEX code analysis.

Determines whether a method belongs to a known library/framework package
and should be filtered out of content tables. This is the Android equivalent
of is_lib_or_thunk() in the Binary Ninja pipeline.
"""

import os
from typing import Dict, List


DEFAULT_LIBRARY_PREFIXES = [
    "android.",
    "androidx.",
    "com.google.android.",
    "com.google.firebase.",
    "com.google.gson.",
    "com.google.protobuf.",
    "kotlin.",
    "kotlinx.",
    "org.apache.",
    "com.squareup.",
    "io.reactivex.",
    "org.reactivestreams.",
    "com.facebook.",
    "com.crashlytics.",
    "io.fabric.",
    "org.junit.",
    "org.mockito.",
]


class LibraryFilter:
    """Filters library/framework classes from APK analysis."""

    def __init__(self, prefixes: List[str] = None):
        env_prefixes = os.getenv("APK_LIBRARY_PREFIXES")
        if env_prefixes:
            self._prefixes = [p.strip() for p in env_prefixes.split(",") if p.strip()]
        elif prefixes is not None:
            self._prefixes = prefixes
        else:
            self._prefixes = DEFAULT_LIBRARY_PREFIXES

        # Convert Dalvik-style prefixes to both formats for matching
        self._dot_prefixes = tuple(self._prefixes)

        self._stats = {"library": 0, "user": 0}

    def is_library(self, class_name: str) -> bool:
        """Check if a class belongs to a known library/framework package.

        Accepts both Java dot notation (com.example.Foo) and Dalvik
        descriptor notation (Lcom/example/Foo;).
        """
        # Normalize Dalvik descriptor to dot notation
        normalized = self._normalize_class_name(class_name)

        is_lib = normalized.startswith(self._dot_prefixes)
        if is_lib:
            self._stats["library"] += 1
        else:
            self._stats["user"] += 1
        return is_lib

    def get_filter_stats(self) -> Dict[str, int]:
        """Return counts of filtered vs. retained classes."""
        return dict(self._stats)

    @staticmethod
    def _normalize_class_name(class_name: str) -> str:
        """Convert Dalvik descriptor to dot notation.

        Lcom/example/Foo; -> com.example.Foo
        com.example.Foo -> com.example.Foo
        """
        if class_name.startswith("L") and class_name.endswith(";"):
            return class_name[1:-1].replace("/", ".")
        return class_name.replace("/", ".")